R 如果在多列中找到值,则布尔值为1/0
我有一个像这样的df:R 如果在多列中找到值,则布尔值为1/0,r,tidyverse,R,Tidyverse,我有一个像这样的df: x1 x2 x3 1 4 1 2 3 1 2 2 4 如果值1出现在x1、x2、x3中,我将创建一个名为find的新变量。预期结果: x1 x2 x3 found 1 4 1 1 2 3 1 1 2 2 4 0 我正在使用tidyverse和mutate,但找不到如何使用多个列进行变异 谢谢 我们可以使用行和: df$found <- +(rowSums(df == 1) > 0) # x1 x2 x3 found #1
x1 x2 x3
1 4 1
2 3 1
2 2 4
如果值1出现在x1、x2、x3中,我将创建一个名为find的新变量。预期结果:
x1 x2 x3 found
1 4 1 1
2 3 1 1
2 2 4 0
我正在使用tidyverse和mutate,但找不到如何使用多个列进行变异
谢谢 我们可以使用
行和
:
df$found <- +(rowSums(df == 1) > 0)
# x1 x2 x3 found
#1 1 4 1 1
#2 2 3 1 1
#3 2 2 4 0
其他一些方式:
df$found <- +(apply(df == 1, 1, any))
df$found <- +(Reduce(`|`, lapply(df, `==`, 1)))
df$found
df$found <- +(apply(df == 1, 1, any))
df$found <- +(Reduce(`|`, lapply(df, `==`, 1)))