对于R中使用序列的循环无效
我是R的初学者,所以当我尝试按顺序创建for循环时,它给了我一个向量的预期结果,但对于第二个向量,它给了我沿向量的相同值(它只进行了第一次迭代)对于R中使用序列的循环无效,r,for-loop,sequence,standard-deviation,R,For Loop,Sequence,Standard Deviation,我是R的初学者,所以当我尝试按顺序创建for循环时,它给了我一个向量的预期结果,但对于第二个向量,它给了我沿向量的相同值(它只进行了第一次迭代) moyenne欢迎来到StackOverflow。请拿着这本书看看。因为R是数据科学特有的语言,所以我们需要数据而不仅仅是代码。幸运的是,R具有dput函数,该函数将对象转储为ascii格式,我们可以在端上运行该格式来重新生成数据。请在你的帖子中添加这些输出。我们不需要90k值,但需要一个足够小的样本,如10/20/30,以重现您的问题。另请参阅。您的
moyenne欢迎来到StackOverflow。请拿着这本书看看。因为R是数据科学特有的语言,所以我们需要数据而不仅仅是代码。幸运的是,R具有dput
函数,该函数将对象转储为ascii格式,我们可以在端上运行该格式来重新生成数据。请在你的帖子中添加这些输出。我们不需要90k值,但需要一个足够小的样本,如10/20/30,以重现您的问题。另请参阅。您的问题可能是i:i+nbsim-1
与i:(i+nbsim-1)
不同。安德鲁古斯塔指出,了解R中运算符的“优先顺序”很有用。例如,就像在算术中,“乘法”优先于“加法”。你可以找到订单(诚然,如果我不知道它在那里的话,我不会第一次去看它)。在本例中,序列运算符:
位于二进制(虽然不是一元数)+
之前,这意味着加法(和减法)是在序列之后进行的。非常感谢,我在添加括号时得到了正确的结果。
moyenne<- c()
ecart<-c()
for(i in seq(1,length(vector1), by=nbsim)){
moyenne<-c(moyenne, mean(P_totale-GRAVE- ATTRITIONNEL-vector2[i:i+nbsim-1]+vector1[i:i+nbsim-1]))
#mean of the result
ecart<-c(ecart,sqrt(var(vector1[i:i+nbsim-1]-vector2[i:i+nbsim-1]-ATTRITIONNEL-GRAVE+P_totale)))
#standard deviation of the result
}
moyenne
ecart