Non uso indicizzazione data.frame per nome riga molto spesso, ma a volte è vantaggioso farlo. Tuttavia ho notato risultato imprevisto quando ho provato a filtrare fila poco emozionanteComportamento imprevisto nell'indicizzazione data.frame per nome della riga
test <- data.frame(a = c("a", "b", "c"),
b = c("A", "B", "C"),
row.names = c(-99.5, 99.5, 99))
test["-99", ]
Ci si potrebbe aspettare che vi darà
a b
NA <NA> <NA>
ma restituisce
a b
-99.5 a A
Giusto per essere specifica
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
Qualche idea?
probabilmente qualche meccanismo fuzzy matching già utilizzato quando si chiama una funzione. –
Cosa intendi? Non c'è nessuna funzione qui. Questo bug sull'ambiente vuoto. – kismsu
Questo è un ottimo esempio del perché si dovrebbero sempre usare le condizioni logiche per il subaffitto/l'indicizzazione. VERO o FALSO è ridicolmente più affidabile e intuitivo dei riferimenti nominali. Inoltre, tende ad essere più facile da eseguire il debug. –