R-筛选任何行并显示所有列
我想创建一个输出,显示具有包含字符串值的行的列名。假设如下R-筛选任何行并显示所有列,r,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 我发现了一个很好的答案,David Arenburg
Animals Sex
I like Dogs Male
I like Cats Male
I like Dogs Female
I like Dogs Female
Data Missing Male
Data Missing Male
我发现了一个很好的答案,David Arenburg提供了一个很好的答案,但我想知道是否有可能得到一个不显示所有行的输出。所以,如果我想找到一个字符串“数据丢失”,我想看到的输出是
Animals
Data Missing
或
而不是
Anmials Sex
Data Missing Male
Data Missing Male
我还发现使用诸如df$columnName之类的过滤器是可行的,但我有一个大文件和大量的列名,键入列名将是乏味的。假设字符串“Data Missing”也在其他列中,并且可能存在不同类型的字符串。这就是为什么我喜欢David Arenburg的答案,所以请记住,我并没有上面给出的两个专栏
干杯如果我们只想要它匹配的第一行,请使用
match
data[match("Data Missing", data$Animals), "Animals", drop = FALSE]
# Animals
#5 Data Missing
您可以做的一件事是对“数据丢失”进行grep,如下所示:
x <- apply(data, 2, grep, pattern = "Data Missing")
lapply(x, length) > 1
你想要的结果。它也很好,因为它检查所有列,您提到的是您想要的
x <- apply(data, 2, grep, pattern = "Data Missing")
lapply(x, length) > 1
Animal
TRUE