如何将结果从for循环存储到数据框中

时间:2019-08-15 18:13:15

标签: r dataframe for-loop

我正在尝试使用for循环来计算某些列之间的均值差,因此在完成for循环时,它给出了一堆值,它们是某些列之间的特定均值差。它们存储在R studio右侧的value部分中。但是,值太多了,所以我真的很想将所有这些值都放在一个数据框中,以便于阅读。

我尝试在for循环和magicfor库之外创建一个数据框,但是它仍然无法正常工作。 这是伪代码:

for (i in c(7:9,11:13, ...)){

  meannam<-paste(.....) #I tried to create a variable name for each mean

  mean_ind_diff<-mean((data[,i+1]-data[,i]),na.rm=TRUE) #computing the average of the difference between (i+1)the column and i column

  assign(meannam, mean_ind_diff) #assigning the meanname to the specific mean value)
}

输出存储在全局环境的value部分中。我可以通过调用变量名称来检索此值。但是我想将所有这些值放入一个数据帧中,并将其变量名作为行名或列名。

预期结果将是一个以'meannam'作为行名(/列名)的数据帧,并且平均差值将位于'meannam'旁边的第二列中

1 个答案:

答案 0 :(得分:1)

为什么不只创建一个带有列名的data.frame,在这里给它的意思是meannam <-paste(.....)与均值差相关?它看起来像这样:


size <- length(c(7:9,11:13, ...))

data_frame_mean_dif <- data.frame(nrow = size, ncol = 2) #in which first columns is name 
                                                         #and second column is the mean 
                                                         #difference

j <- 1 

for(i in c(7:9,11:13, ...)){

   data_frame_mean_dif[j,1] <- paste(.....)
   data_frame_mean_dif[j,2] <- mean((data[,i+1]-data[,i]),na.rm=TRUE)

   j <- j + 1

}