在R中的特定列中查找具有NA的行的唯一标识符

时间:2014-07-25 15:11:58

标签: r

我的数据格式如下:

ID  Species Side_of_boat
1   spA     Port
2   spB     Starboard
3   spA     NA

我想写一行代码,这些代码为我提供了所有行的唯一ID,这些行位于船的“#”旁边。

我试过了:

unique(df$ID[df$side_of_boat == "NA"])

但它并没有给我我想要的输出。我希望输出为:

"3"

谢谢!

3 个答案:

答案 0 :(得分:1)

尝试

unique(df$ID[is.na(df$Side_of_boat)])

代替。 NA是R中的特殊值,并且还有自己的特殊函数is.na()来测试条目是否为NA。请查看?NA以获取更多信息。

答案 1 :(得分:1)

#Method1

n <- which(is.na(df$side_of_boat))

你也可以使用*apply,例如

lapply(apply(df$side_of_boat, 1, function(x) which(!is.na(x)) ) , paste, collapse=", ")

#Method 2

new_DF <- subset(df, is.na(df$side_of_boat))

#Method 3

您也可以编写一个函数来为您执行此操作:

getNa <- function(dfrm) lapply(dfrm, function(x) which(is.na(x) ) )

#Note 如果您有NA字符值,请先运行

df$side_of_boat[df$side_of_boat=='NA'] <- NA

答案 2 :(得分:0)

尝试:

df$ID[which(is.na(df$Side_of_Boat))]

它应该为您提供ID的向量,无论它们是数字还是字符