我对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) }