我试图将多个数据帧写入多个.csv文件。我在网上找到了如何做后一部分,但不是前者(动态定义数据帧)。
# create separate dataframes from each 12 month interval of closed age
for (i in 1:max_age) {assign(paste("closed",i*12,sep=""),
mc_masterc[mc_masterc[,7]==i*12,])
write.csv(paste("closed",i*12,sep=""),paste("closed",i*12,".csv",sep=""),
row.names=FALSE)
}
在上面的代码中,问题出在write.csv语句的第一部分。它将动态创建.csv文件,但不会与我尝试指定的表中的实际内容一起创建.csv文件。 write.csv语句的第一个参数应该是什么?谢谢。
答案 0 :(得分:1)
write.csv
的第一个参数需要是R对象,而不是字符串。如果您不需要内存中的对象,您可以这样做:
for (i in 1:max_age) {
df <- mc_masterc[mc_masterc[,7]==i*12,])
write.csv(df,paste("closed",i*12,".csv",sep=""),
row.names=FALSE)
}
如果你需要它们在内存中,你可以单独执行,或使用get
基于字符串返回对象。单独的:
for (i in 1:max_age) {
df <- mc_masterc[mc_masterc[,7]==i*12,])
assign(paste("closed",i*12,sep=""),df)
write.csv(df,paste("closed",i*12,".csv",sep=""),
row.names=FALSE)
}
使用get
:
for (i in 1:max_age) {
assign(paste("closed",i*12,sep=""), mc_masterc[mc_masterc[,7]==i*12,])
write.csv(get(paste("closed",i*12,sep="")),paste("closed",i*12,".csv",sep=""),
row.names=FALSE)
}