繁体   English   中英

R:单元格的值取决于两个条件

[英]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等于Ay等于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.

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