在全球环境中存储循环中创建的数据?

时间:2018-04-18 14:57:59

标签: loops dataframe environment

我是R的新手,我有一个更大的数据框,有58个观测值,我想在29个数据帧中分解,包括第1列和第3列,第3列和第4列等。

我尝试了以下

for (i in 1:29){
 x <- LCMS[,((i*2)-1):(i*2)]
 assign("dfi",x,envir=globalenv())
 }

,并且没有收到错误消息,但没有保存但是“dfi”,这是上一次迭代的数据帧。

我猜是“dfi”作为名称输入的问题,所以它不用于迭代过程?但是我该怎样绕过这个呢?

1 个答案:

答案 0 :(得分:0)

您在这里有两个问题。

首先,assign将对象保存到环境,而不是计算机中的文件。要在计算机中写入文件,可以使用“写入”功能(csv,xlsx,其中有一个用于所需格式的功能)。

第二,“ dfi”没有改变,因为我在引号内,使其成为“ dfi”字符串的一部分,而不是数字对象。如果要创建名为df1,df2,df3等的文件,则需要使用“粘贴”功能。

我已经写了一些代码作为示例,希望对您有所帮助!

    for(i in 1:29) {
       new.data <- LCMS[,((i*2)-1):(i*2)]
       df.name <- paste("LCMS_pair",i,".xlsx",sep = "") 
       write.xlsx(new.data,df.name,row.names = F) }