我对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
想法?提前感谢您的帮助。
答案 0 :(得分:1)
假设列为numeric
transform(df1, col2= (2+(col1==1)-1)*col2)
答案 1 :(得分:1)
这是另一种可能性:
data$col2 <- as.numeric(data$col2) * (1 + (data$col1==1))