【问题标题】:Split data frame and write to csv拆分数据帧并写入 csv
【发布时间】:2018-11-29 21:37:21
【问题描述】:

我有一个数据框,例如:

df <- data.frame(var1 = rep(c('a', 'b', 'c'), 100),
             var2 = rep(c('x', 'w', 'y', 'z'), 75),
             var3 = rep(c('one', 'two'), each = 150),
             value = 1:300)

我想自动将其拆分为数据帧,并为每个唯一的变量组写入 csv 文件。这会给我 3 * 4 * 2 = 24 个单独的数据帧和生成的 csv 文件。我希望这些标题为每个组合的“var1_var2_var3.csv”(例如,“a_x_one.csv”

如何实现自动化?

【问题讨论】:

    标签: r csv dataframe split subset


    【解决方案1】:

    考虑by 按一个或多个因素拆分数据帧并将子集作为参数传递给函数:

    by_df_list <- by(df, df[,c("var1", "var2", "var3")], function(sub){
    
      file_name <- paste(max(as.character(sub$var1)), 
                         max(as.character(sub$var2)),
                         max(as.character(sub$var3)), sep="_")
    
      write.csv(sub, paste0(file_name, ".csv"), row.names = FALSE)
    
      return(sub)
    })
    

    【讨论】:

    • 这非常适合第 1 部分,对数据框进行子集化。我该如何进行下一步,现在将所有这些数据帧导出到具有我想要的文件名的单独 csv 文件?
    • 您显然没有使用示例数据运行解决方案。有一个write.csv 来电!
    • 啊!谢谢你。我的导出目录设置在我没有看到的地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2021-09-12
    • 2022-12-17
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多