R在多个数据框列中查找值

rob*_*bie 4 r dataframe

给定一个数据集,其中值可以位于数据帧的任何一列中:

df <- data.frame(h1=c('a', 'b', 'c', 'a', 'a', 'b', 'c'), h2=c('b', 'c', 'd', 'b', 'c', 'd', 'b'), h3=c('c', 'd', 'e', 'e', 'e', 'd', 'c'))
Run Code Online (Sandbox Code Playgroud)

如何获取指定哪些行包含目标值的逻辑向量?在这种情况下,搜索'b',我想要一个行(1,2,4,6,7)的逻辑向量为TRUE.

实际数据集更大,更复杂,所以我试图避免for循环.

谢谢

编辑:

这似乎有效.

>apply(df, 1, function(x) {'b' %in% as.vector(t(x))}) -> i
> i
[1]  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE
Run Code Online (Sandbox Code Playgroud)

flo*_*del 8

如果速度是一个问题,我会去:

rowSums(df == "b") > 0
Run Code Online (Sandbox Code Playgroud)


Hon*_*Ooi 5

apply(df, 1, function(r) any(r == "b"))
Run Code Online (Sandbox Code Playgroud)