鉴于此dataFrame:
years random_numbers
1 2003 -24
2 2004 152
3 2005 23
4 2006 73
5 2007 80
6 2008 85
. .... ..
生成数据框的代码:
years = c(rep(2003:2012,4))
random_numbers = as.integer(rnorm(40)*100)
testDF = data.frame(years, random_numbers)
如何生成ff。文本文件:
我有点迷失方向。 我想把多年作为因素,然后以某种方式将它与
结合起来write.table(???, ???, append = T, row.names = F, col.names = T)
答案 0 :(得分:2)
plyr
包和d_ply
使这很容易。
定义一个写入文件的函数:
myfun <- function(x) {
filename <- paste0(unique(x$years), '.txt')
write.table(x$random_numbers, filename, row.names=F, col.names=T)
}
然后使用d_ply
调用它:
d_ply(testDF, .(years), myfun)
小心这一点虽然...因为它会默默地将一堆文件写入您当前的工作目录!
答案 1 :(得分:2)
sapply(testDF$years, function(x)
write.table(testDF[testDF$years==x,], file=paste(x, "txt", sep=".") )
)
你不想设置append = T.也可以使用子集:
sapply(testDF$years, function(x)
write.table(subset( testDF, years==x), file=paste(x, "txt", sep=".") )
)