2015-08-05 17 views
10

Dizin oluşturma data.frame'i çok sık kullandım ama bazen bunu yapmak için bir avantaj var. Ancak ben Bunu sizeVeri dizinine veri sağlamada beklenmedik davranışlar Satır adına göre

 a b 
NA <NA> <NA> 

verecek beklenebilir sıkıcı Satırı

test <- data.frame(a = c("a", "b", "c"), 
        b = c("A", "B", "C"), 
        row.names = c(-99.5, 99.5, 99)) 
    test["-99", ] 

filtre denedim beklenmeyen bir sonuç fark ettik ama sadece olmak

 a b 
-99.5 a A 

döndürür spesifik

Session info --------------------------------------------------------------- 
setting value      
version R version 3.2.1 (2015-06-18) 
system x86_64, mingw32    
ui  RStudio (0.99.441)   
language (EN)       
collate English_United Kingdom.1252 
tz  Europe/London 

Herhangi bir fikir?

+0

muhtemelen bazı bulanık eşleştirme mekanizması zaten kullanıldı. –

+0

Ne demek istiyorsun? Burada hiçbir işlev yok. Boş ortamdaki bu böcek. – kismsu

+0

Bu, neden her zaman alt dizinleme/indeksleme için mantıksal koşulları kullanmanız gerektiğine dair harika bir örnektir. DOĞRU veya YANLIŞ, adlandırılmış referanslardan çok daha güvenilir ve sezgiseldir. Ayrıca, hata ayıklaması daha kolay olma eğilimindedir. –

cevap

6

Bu gerçekten beklenmedik bir durumdur. dizine eklerken

Bunun cevabı satır isimlerinin kısmi eşleştirme yatıyor:

mtcars["Val", ] 

bize "valient" satırını verecek. sütunlar için bu alışkanlık iş:

subset(test, rownames(test) == "-99") 

Düzenleme::

mtcars[ ,"cy"] 

bu ortadan kaldırmak için, ben kullanarak alt küme ediyorum Gerçekten ?"[.data.frame"

Hem [ve [[çıkarma belgelenmiştir Yöntemler satır adlarını kısmen eşleştirir. Varsayılan olarak , kısmen eşleşme sütun adlarıyla eşleşmez, ancak [[eğer tam ise = FALSE (ve tam olarak bir uyarı = NA ile). Örneklerde olduğu gibi, satır adlarındaki eşleşmeyi tam olarak eşleştirmek istiyorsanız, eşleştirmeyi kullanın.

Verilerinizden maçı kullanmak için: bir işlev çağrılırken

test[match("-99", row.names(test)), ] 
+1

Şimdi, sorunu yanlış okuduğumu anlıyorum. İyi cevap (+1). – Jaap

İlgili konular