对R中选择行的算术运算

时间:2015-07-15 18:16:46

标签: r

我对R很新,所以这个问题可能看起来很愚蠢,但请耐心等待。这是我的数据:

  col1 col2
1     2    9
2     2    2
3     1    8
4     1    1
5     2    4
6     2    5
7     2    3
8     1   10
9     1    6
10    2    7

可从

重现
data <- data.frame(col1 = sample(c(1,2), 10, replace = TRUE),
               col2 = as.factor(sample(10)))

如果col1中的相应值为“1”,我想让col2中的所有行乘以2。所以最终的结果应该是:

  col1 col2
1     2    9
2     2    2
3     1    16
4     1    2
5     2    4
6     2    5
7     2    3
8     1    20
9     1    12
10    2    7

想法?提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

假设列为numeric

 transform(df1, col2= (2+(col1==1)-1)*col2)

答案 1 :(得分:1)

这是另一种可能性:

data$col2 <- as.numeric(data$col2) * (1 + (data$col1==1))