【发布时间】:2011-04-27 13:24:13
【问题描述】:
我在使用 R 时遇到了一个小问题……
在下面的数据框中
test <- data.frame(v1=c(rep(1,3),rep(2,3)),v2=0)
我想在 v1 为 1 的行中更改 v2 的值。
test[test$v1==1,"v2"] <- 10
工作得很好。
test
v1 v2
1 1 10
2 1 10
3 1 10
4 2 0
5 2 0
6 2 0
但是,我需要在函数中执行此操作。
test <- data.frame(v1=c(rep(1,3),rep(2,3)),v2=0)
test.fun <- function (x) {
test[test$v1==x,"v2"] <- 10
print(test)
}
调用该函数似乎可以工作。
test.fun(1)
v1 v2
1 1 10
2 1 10
3 1 10
4 2 0
5 2 0
6 2 0
但是,当我现在看测试时:
test
v1 v2
1 1 0
2 1 0
3 1 0
4 2 0
5 2 0
6 2 0
没有用。 是否有命令告诉 R 真正更新函数中的数据框? 非常感谢您的帮助!
【问题讨论】: