我试图将两个二进制变量组合在一起作为一个变量,因此如果一个变量中有 0,另一个变量中有 1,那么它就是 1。这包含 NA。示例
a <- c("A", NA, 0)
b <- c("B",0, 1)
c <- c("C", 0, 0)
d <- c("D", 0, 1)
e <- c("E", NA, NA)
aa<- rbind(a,b,c,d,e)
aa <- as.data.frame(aa)
我想编写这个代码来给我:
a <- c("A", NA, 0, 0)
b <- c("B",0, 1, 1)
c <- c("C", 0, 0, 0)
d <- c("D", 0, 1, 1)
e <- c("E", NA, NA, NA)
bb<- rbind(a,b,c,d, e)
bb <- as.data.frame(bb)
我认为这是一个简单的解决方案。
最佳答案
使用base R
,使用rowSums
通过将感兴趣的列与1进行比较来创建V4列,然后将“V4”中的值替换为NA第 2 列和第 3 列中连续的所有 NA
aa$V4 <- rowSums(aa[-1] == 1, na.rm = TRUE)
aa$V4[rowSums(is.na(aa[2:3])) == 2] <- NA
-输出
> aa
V1 V2 V3 V4
a A <NA> 0 0
b B 0 1 1
c C 0 0 0
d D 0 1 1
e E <NA> <NA> NA
关于r - 将两个变量组合在一起,包括 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75858268/