我有一个包含此列x $ multX1992
的数据框x$multX1992;
0 30 30 30 12 5 6 0 0 0 0 0
me92;
0.6531792
创建了一个空向量来存储
中的内容tmp<- rep(NA, length(x$multX1992));
tmp;
NA NA NA NA NA NA NA NA NA NA NA NA
创建此循环以从x $ multX1992中的每个值中减去me92并将它们存储在空向量中。
for(i in seq(x$multX1992)){ tmp[i]<- (i - me92)^2}
我做错了什么?数学没有加起来。
答案 0 :(得分:2)
你不需要for循环来完成这项任务,只需利用R的矢量化方式来做事
> x <- data.frame(multX1992=c(0,30,30,30, 12,5,6,0,0,0,0,0))
> me92 <- 0.6531792
> tmp <- (x$multX1992-me92)^2
> tmp
multX1992
[1,] 0.4266431
[2,] 861.2358911
[3,] 861.2358911
[4,] 861.2358911
[5,] 128.7503423
[6,] 18.8948511
[7,] 28.5884927
[8,] 0.4266431
[9,] 0.4266431
[10,] 0.4266431
[11,] 0.4266431
[12,] 0.4266431