我可以在编写循环时有效地将循环中的值存储到向量中,如:
z = 0.5
x <- vector("numeric", 10)
for(i in 1:10){
x[i] <- z - i/10
}
>[1] 0.4 0.3 0.2 0.1 0.0 -0.1 -0.2 -0.3 -0.4 -0.5
字符串
然而,当我使用一个数字序列而不是冒号分隔符时,比如:
z = 0.5
x <- vector("numeric", 20)
for(i in seq(0.05, 1, 0.05)){
x[i] <- z - i
}
>[1] -0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
型
它没有为i
的每次迭代返回一个向量,为什么它会这样做,我如何才能让循环有效地与seq()
一起工作?
1条答案
按热度按时间92dk7w1h1#
你的索引也变成了双精度数,这就是问题所在。你可以用数字定义一个向量
I
,然后在seq
的索引上循环。用i
子集化I
和结果x
。字符串
以防这不仅仅是一个简化的例子,因为R是矢量化的,所以你也可以只做
型