繁体   English   中英

dplyr 根据现有列的值改变新列

[英]dplyr mutate new column according to the value of existing columns

我需要根据两个现有列的值添加一个新列。

我的数据集如下所示:

    V1   V2  V3
1   1    I
2   2    C
3   1    C
4   1    A
5   2    C
...

新列 V3 应遵循以下条件:'''

if (V1==2 & V2==C) {
V3 <- 1
} else { V3 <- 0
}

'''

但是,当我尝试创建列时,出现以下错误:'''"评估错误:比较 (1) 仅适用于原子和列表类型。"'''

理想情况下,结果应该是这样的:

   V1  V2  V3
1   1   I   0
2   2   C   1
3   1   C   0
4   1   A   0
5   2   C   1
...

提前谢谢了!

我不知道,如果你的数据是tibbledata.frame ,但你可以运行str(data) ,看看有没有列出在那里。 如果它是一个简单的数据框,那么这应该可以工作:

> data <- data.frame(V1 = c(1,2,1,1,2), V2 = c("I", "C","C","A","C"))

> data%>%mutate(
   V3 = ifelse(V1 %in% 2 & V2 %in% 'C', 1, 0)
 )

  V1 V2 V3
1  1  I  0
2  2  C  1
3  1  C  0
4  1  A  0
5  2  C  1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM