r - 将两个变量组合在一起,包括 NA

标签 r data-cleaning

我试图将两个二进制变量组合在一起作为一个变量,因此如果一个变量中有 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/

相关文章:

r - R中绘图中同一组的循环点

Pandas:iloc 和 reset_index 在随机函数中定义时不会被执行

r - 如何交换 R 中两列子集中的值?

r - 有没有一种简单的方法可以在 R 的 igraph 中按度数对网络节点进行着色?

r - 计算曲线下面积

r - 不是内部或外部命令,也不是可运行的程序或批处理文件。 gcloud 调用失败

r - 在 data.table 中使用列名范围,就像在 dplyrs select 中一样

r - 如何使用R检查数据一致性(确保大小写和值不矛盾)?

python - 使用 spacy 删除停用词