R中的循环问题

R中的循环问题,r,loops,R,Loops,我有一个包含此列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 tmp此任务不需要for循环,只需利用R的矢量化方式即可 > x <- data.frame(multX1992=c

我有一个包含此列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

tmp此任务不需要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
>x me92 tmp 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

$multX1992
添加到矢量化减法中,因为我发布了完全相同的答案:-)该
。您也不需要预先分配
tmp
向量。请参见R中的矢量化操作。如果希望循环工作,则该平方表达式中的
i
值应替换为
x$multX1992[i]
。当然,这是非常低效的,您应该使用
tmp
> 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