R-过滤任何行并显示所有列

时间:2018-08-24 14:06:55

标签: r

我想要一个输出,该输出显示具有包含字符串值的行的列名。假设以下...

       Animals        Sex
       I like Dogs    Male
       I like Cats    Male
       I like Dogs    Female
       I like Dogs    Female
       Data Missing   Male
       Data Missing   Male 

我找到了一个here过渡区,David Arenburg提供了很好的答案,但我想知道是否有可能获得不显示所有行的输出。因此,如果我想找到一个字符串“ Data Missing”,我希望看到的输出是...

       Animals        
       Data Missing

       Animal 
       TRUE 

代替

       Anmials        Sex
       Data Missing   Male
       Data Missing   Male 

我还发现使用df $ columnName之类的过滤器也可以,但是我有大文件,并且有大量的列名,键入列名将很麻烦。假设字符串“ Data Missing”也在其他列中,并且可能存在不同类型的字符串。这就是为什么我喜欢David Arenburg的答案,所以请记住,我没有两列,如上面给出的示例。

欢呼

2 个答案:

答案 0 :(得分:0)

如果我们只希望第一行与之匹配,请使用match

data[match("Data Missing", data$Animals), "Animals", drop = FALSE]
#     Animals  
#5 Data Missing

答案 1 :(得分:0)

您可以做的一件事就是grep,用于“数据丢失”,如下所示:

x <- apply(data, 2, grep, pattern = "Data Missing")
lapply(x, length) > 1

这将为您提供:

Animal 
TRUE 

您追求的结果。这也很好,因为它检查了所有您想要的列。