R编程:运行一个forloop,在这里我接受特定的值



我正试图创建一个循环,运行向量中具有特定I值的函数:

例如,当I为1和5 时,我想保存I+2

test<- c()
for(i in c(1,5)){

test[i] <- i + 2

}

这最终打印2、3和4的NA:[1] 3 NA NA NA 7

而我想要的结果是:[1] 3 7

这可能是非常初级的,但我似乎无法理解。

R是矢量化的,这意味着您可以这样做:

c(1, 5) + 2
# [1] 3 7

R中的for循环通常非常慢,这就是为什么它们在*apply家族的函数(例如(中以C实现的原因

sapply(c(1, 5), (i) i + 2)
# [1] 3 7

如果你真的需要依赖一个for循环;对于";循环,您可能希望循环索引而不是值(一个非常常见的错误!(:

v <- c(1, 5)
test <- vector('numeric', length(v))
for (i in seq_along(v)) {
test[i] <- v[i] + 2
}
test
# [1] 3 7

使用append

test<- c()
for(i in c(1,5)){
test<-append(test,i+2)
}

相关内容

最新更新