[英]R: changing value of a cell depending on two conditions
如果其他列中的两个单元格满足某些条件,我想将数据框中的一个单元格的值增加1。 我怎么做?
这是我在一种情况下的处理方式:
`+`(data.frame[which(data.frame$col1 == some.value),]$col2 , 1)
我希望
`+`(data.frame[which(data.frame$col1 == some.value && data.frame$col3 == some.other.value),]$col2 , 1)
会工作,但不会。
有什么优雅解决方案的想法吗?
首先创建一些数据进行播放:
set.seed(1)
L = c("A", "B", "C")
dd = data.frame(x = sample(L, 10, TRUE), y = sample(L, 10, TRUE), z = 0)
因此dd
是一个包含三列的数据帧:
R> head(dd)
x y z
1 A A 0
2 B A 0
3 B C 0
4 C B 0
5 A C 0
6 C B 0
在下面的示例中,如果x
等于A
, y
等于C
我们应该将z
加1:
dd$z = dd$z + (dd$x == "A" & dd$y== "C")
关键部分是:
(dd$x == "A" & dd$y== "C")
这是逻辑比较,并返回TRUE
(1)或FALSE
(0)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.