R中的循环问题
我有一个包含此列x$multX1992的数据帧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;
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