如何从多个数据帧中使用循环R写入多个文件?
我从22个不同的文件中读取了22个不同的数据帧,并将对象命名为r1到r22。现在我想再把它们写在22个不同的文件中。我想使用循环。这是我的剧本:如何从多个数据帧中使用循环R写入多个文件?,r,file,loops,R,File,Loops,我从22个不同的文件中读取了22个不同的数据帧,并将对象命名为r1到r22。现在我想再把它们写在22个不同的文件中。我想使用循环。这是我的剧本: for(i in 1:2) { write.table(paste("r", i, sep = ""), paste("r",i,".txt",sep="") , sep = " ", col.names=F, row.names=FALSE, quote=F) } 它不会在文件r1中写入
for(i in 1:2) {
write.table(paste("r", i, sep = ""), paste("r",i,".txt",sep="") , sep = " ",
col.names=F, row.names=FALSE, quote=F)
}
它不会在文件r1中写入r1的值,实际上它只在文件中写入r1并保存它
你能告诉我怎么做吗?试着用evalparsetext=paster,i,sep=
现在您的代码将是:
for(i in 1:22) {
write.table(eval(parse(text=paste("r", i, sep = ""))), paste("r",i,".txt",sep="") ,
sep = " ",col.names=F, row.names=FALSE, quote=F)
}
听起来您在环境中将所有22个data.Frame作为单独的对象?在这种情况下,for循环可能是最简单的选择 作为一种替代方法,如果你经常做这类事情,当我阅读中的文件时,我会将它们收集到一个列表中,然后你可以用同样的方法写出它们
# assuming there is a file list like this with each element a data.frame
file.list <- list(r1,r2,r3...r22)
file.names <- paste(rep("r", length(file.list)), c(1:length(file.list)), sep = "")
mapply(function(x,y) {write.table(x, y, sep = " ", col.names=F, row.names=FALSE, quote=F)}, file.list, file.names)
非常感谢你!太棒了!