假设我有一个 data.frame 像:
a <- c(1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10)
df <- data.frame(a,rnorm(100))
我希望能够为 x 的每个值编写一个 csv 文件。可以用 ddply 做到这一点吗?
我已经可以用几行 for 循环来做到这一点……但我很好奇是否可以用 ddply 做到这一点。
for (x in 1:nrow(unique(df["a"]))) {
tmp <- unique(df["a"])
tmp2 <- paste(tmp[x,],".csv", sep="")
write.table(subset(df, a == tmp[a,], drop=T),file=tmp2, sep=",", row.names=F)
}
最佳答案
继续约书亚的回答,plyr
要使用的函数是 d_ply
它不期望返回任何东西。你可以这样做:
d_ply(df, .(a),
function(sdf) write.csv(sdf,
file=paste(sdf$a[[1]],".csv",sep="")))
file
论据 write.csv
构造成每个子集都有不同的文件名。
关于r - 是否可以同时使用 write.table() 和 ddply?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3411429/