我是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”作为名称输入的问题,所以它不用于迭代过程?但是我该怎样绕过这个呢?
答案 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) }