我提前为这个问题道歉,但我看起来很努力并且无法找到解决方案。
如何在变量中由 for 循环生成的值?
例如:
myfunction <- function(x=1:5) {
for(i in 1:length(x)) {
r<-x[i]
}
print(r)
}
如果我运行上面的代码,我只会得到 x 的最后一个值,在这种情况下是 5。我知道这是因为我每次都通过 for 循环覆盖 r。
我也试过:
myfunction <- function(x=1:5) {
for(i in 1:length(x)) {
r[i]<-x[i]
}
print(r)
}
但我仍然只是得到最后一个值。
我发现的唯一解决方案是在使用 r<-numeric(length) 之前指定将保存生成值的变量的长度:
myfunction <- function(x=1:5) {
r<-numeric(5)
for(i in 1:length(x)) {
r[i]<-x[i]
}
print(r)
}
但是如果我事先不知道要返回的向量的长度,这个解决方案显然是不够的。
谢谢你的帮助!