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



我对R很陌生,我有一个更大的数据帧,有58个观测值,我想将其分解为29个数据帧,包括第1&2、3&4等列。

我尝试了以下方法

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

并且不会收到错误消息,但除了"DFI"(然后是上次迭代的数据帧(之外,不会保存任何内容。

我猜"dfi"作为名称输入的问题,所以它不用于迭代过程?但是我该如何规避呢?

你这里有两个问题。

首先,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) }

最新更新