我有以下形式的數據幀:如何對數據框屬性邏輯測試導致NA-行
>df
stationid station gear sample lat lon date depth
1 25679 CORBOX150 UE4 53.9015 7.8617 15.07.1987 19
2 25681 UE9 Kern CORCRB050 UE9 54.0167 7.3982 15.07.1987 33
3 NA 54.0167 7.3982 15.07.1987 33
上stationid
邏輯測試給我,旁邊的正確的第一線,一個惱人的線路全程的NAs:
> df[df$stationid=="25679",]
stationid station gear sample lat lon date depth
1 25679 CORBOX150 UE4 53.9015 7.8617 15.07.1987 19
NA NA <NA> <NA> <NA> NA NA <NA> NA
這是爲什麼?
df
第3行的某處,我猜想事情會搞砸。
繼承人的數據:
df<-structure(list(stationid = c(25679L, 25681L, NA), station = structure(c(2L,
3L, 1L), .Label = c("", " ", "UE9 Kern"), class = "factor"),
gear = structure(c(2L, 3L, 1L), .Label = c("", "CORBOX150",
"CORCRB050"), class = "factor"), sample = structure(c(2L,
3L, 1L), .Label = c("", "UE4", "UE9"), class = "factor"),
lat = c(53.9015, 54.0167, 54.0167), lon = c(7.8617, 7.3982,
7.3982), date = structure(c(1L, 1L, 1L), .Label = "15.07.1987", class = "factor"),
depth = c(19L, 33L, 33L)), .Names = c("stationid", "station",
"gear", "sample", "lat", "lon", "date", "depth"), class = "data.frame", row.names = c(NA,
-3L))
這是因爲你在'stationid'列有'NA',使用'which'。這個'df [which(df $ stationid ==「25679」)]''應該可以工作 – dickoa