R 如何将逻辑向量合并到新列中
我有很多列的逻辑向量,希望能够将2个或更多列合并为一个,如果行中有任何TRUE,则只在合并的列中得到一个TRUE 下面是两列和各种组合的示例R 如何将逻辑向量合并到新列中,r,dataframe,R,Dataframe,我有很多列的逻辑向量,希望能够将2个或更多列合并为一个,如果行中有任何TRUE,则只在合并的列中得到一个TRUE 下面是两列和各种组合的示例 X <- c(T,F,T,F,F,T,F,T,T,F,F,F) Y <- matrix(X,nrow = 6, ncol = 2) Y [,1] [,2] [1,] TRUE FALSE [2,] FALSE TRUE [3,] TRUE TRUE [4,] FALSE FALSE [5,] FALSE FALSE [6,
X <- c(T,F,T,F,F,T,F,T,T,F,F,F)
Y <- matrix(X,nrow = 6, ncol = 2)
Y
[,1] [,2]
[1,] TRUE FALSE
[2,] FALSE TRUE
[3,] TRUE TRUE
[4,] FALSE FALSE
[5,] FALSE FALSE
[6,] TRUE FALSE
如何创建一个第三列,如果两个都说False,那么添加true和leaving behind,如果要添加3个或更多列,这也可以吗?使用下面基于基本R的代码
X <- c(T,F,T,F,F,T,F,T,T,F,F,F)
Y <- as.data.frame(matrix(X,nrow = 6, ncol = 2))
unique(Y$V1)
Y$condition <- ifelse(Y$V1 == "TRUE" | Y$V2 == "TRUE","TRUE","FALSE")
使用以下基于Base R的代码
X <- c(T,F,T,F,F,T,F,T,T,F,F,F)
Y <- as.data.frame(matrix(X,nrow = 6, ncol = 2))
unique(Y$V1)
Y$condition <- ifelse(Y$V1 == "TRUE" | Y$V2 == "TRUE","TRUE","FALSE")
下面是一个可能的解决方案,它使用apply和logical运算符|,可用于任意数量的Y列
下面是一个可能的解决方案,它使用apply和logical运算符|,可用于任意数量的Y列
如果所有列中都有逻辑向量,则可以使用行和
如果任何行中至少有1个TRUE,则返回TRUE,否则返回FALSE。这也适用于任意数量的列 如果所有列中都有逻辑向量,则可以使用行和 如果任何行中至少有1个TRUE,则返回TRUE,否则返回FALSE。这也适用于任意数量的列
cbind(Y, rowSums(Y) > 0)
# [,1] [,2] [,3]
#[1,] TRUE FALSE TRUE
#[2,] FALSE TRUE TRUE
#[3,] TRUE TRUE TRUE
#[4,] FALSE FALSE FALSE
#[5,] FALSE FALSE FALSE
#[6,] TRUE FALSE TRUE