【发布时间】:2015-05-30 18:25:25
【问题描述】:
有两列。 在新列中,我希望它随机添加或减去其他两列:
for (i in 1:nrow(data) {
if (round(runif(1, 1,2),0) == 1) {
data$p_p2= data$p[i] + data$p2[i]
} else {
data$p_p2 = data$p[i] - data$p2[i]
}
}
例如,
p p1 p_p2 *goal*
1 3 -2
3 3 6
5 2 7
谢谢
【问题讨论】:
-
您可以使用
ifelse代替for 循环,即with(data, ifelse(round(runif(nrow(data),1,2),0)==1, p+p1, p-p1))在您的for循环中,缺少一些括号,您可能需要[i] -
我认为这个版本可能适合你
data$p_p2 <- NA;for (i in 1:nrow(data)) { if (round(runif(1, 1,2),0) == 1) { data$p_p2[i]= data$p[i] + data$p1[i] } else { data$p_p2[i] = data$p[i] - data$p1[i] } }