代码之家  ›  专栏  ›  技术社区  ›  Brandon Bertelsen

是否可以同时使用write.table()和ddply?

r
  •  4
  • Brandon Bertelsen  · 技术社区  · 14 年前

    假设我有一个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))
    

    我已经可以用一个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)
    }  
    
    2 回复  |  直到 14 年前
        1
  •  4
  •   Jyotirmoy Bhattacharya    14 年前

    从约书亚的回答继续说 plyr 要使用的函数是 d_ply 不会有任何回报。你可以这样做:

    d_ply(df, .(a),
          function(sdf) write.csv(sdf,
                                  file=paste(sdf$a[[1]],".csv",sep="")))
    

    这个 file 论据 write.csv 构造为使每个子集获得不同的文件名。

        2
  •  1
  •   Joshua Ulrich    14 年前

    可能的 做这件事 ddply plyr

    拆分应用组合策略。。。

    您想拆分data.frame并应用一个函数,但不想 返回 任何事,所以 ddply公司