R 按多列分组,并将每组写入csv

R 按多列分组,并将每组写入csv,r,R,我有一个类似上表的.csv文件,其中包含客户信息,我需要将其拆分为多个.csv文件 每个文件都需要按品牌和ID进行拆分。在上面的示例中,将有2个.csv文件,其中(品牌=6,ID=1167)有3个客户记录,(品牌=8,ID=1167)有1个客户记录 我需要一些可以检测每个唯一ID的代码的帮助,因为我的数据文件中有30个不同的ID。使用数据。表包我们可以使用以下内容: 按一列分组: 按两列(或更多列)分组: 对于多个列,我可以考虑添加一个帮助列,它是用于分组的所需列的组合: library(dat

我有一个类似上表的.csv文件,其中包含客户信息,我需要将其拆分为多个.csv文件

每个文件都需要按品牌和ID进行拆分。在上面的示例中,将有2个.csv文件,其中(品牌=6,ID=1167)有3个客户记录,(品牌=8,ID=1167)有1个客户记录


我需要一些可以检测每个唯一ID的代码的帮助,因为我的数据文件中有30个不同的ID。

使用
数据。表
包我们可以使用以下内容:

按一列分组: 按两列(或更多列)分组: 对于多个列,我可以考虑添加一个帮助列,它是用于分组的所需列的组合:

library(data.table)
setDT(mydat)[, write.csv(c(.BY,.SD), paste0("BRAND_ID_", .BY, ".csv")), by=BRAND]
这为每个ID和品牌的独特组合提供了5个文件。它们将保存到当前工作目录。如果要将输出保存在所需目录中,请阅读关于
?write.csv

数据

library(data.table)
setDT(mydat)[, tempcol:=paste(ID,BRAND,sep="_")]
setDT(mydat)[, write.csv(.SD, paste0("ID_BRAND_", .BY, ".csv")),by=tempcol]

使用
数据。表
包,我们可以使用以下内容:

按一列分组: 按两列(或更多列)分组: 对于多个列,我可以考虑添加一个帮助列,它是用于分组的所需列的组合:

library(data.table)
setDT(mydat)[, write.csv(c(.BY,.SD), paste0("BRAND_ID_", .BY, ".csv")), by=BRAND]
这为每个ID和品牌的独特组合提供了5个文件。它们将保存到当前工作目录。如果要将输出保存在所需目录中,请阅读关于
?write.csv

数据

library(data.table)
setDT(mydat)[, tempcol:=paste(ID,BRAND,sep="_")]
setDT(mydat)[, write.csv(.SD, paste0("ID_BRAND_", .BY, ".csv")),by=tempcol]

谢谢你的帮助。我尝试了您的代码,但在文件(file,ifelse(append,“a”,“w”))中出现此错误:无效的'description'参数另外:警告消息:在if(file==“”)文件1中,只有第一个元素将被删除used@lomingchun该错误说明您误用了
?文件
的description=参数。另外,我想您不需要
stdout()
,除非您正在做一些非常奇特的事情?如果你需要更多关于我正在做什么的信息,我很乐意提供。谢谢您的帮助。@lomingchun这就是我如何命名输出文件的问题。使用
.BY
作为名称在仅按一列分组时有效,但不适用于多列分组。您是否需要为每个文件指定一个解释性名称,或者如果文件名为
file_1.csv
file_2.csv
等,则可以。文件名应具有ID和品牌。“1167_6.csv”感谢您的帮助。我尝试了您的代码,但在文件(file,ifelse(append,“a”,“w”))中出现此错误:无效的'description'参数另外:警告消息:在if(file==“”)文件1中,只有第一个元素将被删除used@lomingchun该错误说明您误用了
?文件
的description=参数。另外,我想您不需要
stdout()
,除非您正在做一些非常奇特的事情?如果你需要更多关于我正在做什么的信息,我很乐意提供。谢谢您的帮助。@lomingchun这就是我如何命名输出文件的问题。使用
.BY
作为名称在仅按一列分组时有效,但不适用于多列分组。您是否需要为每个文件指定一个解释性名称,或者如果文件名为
file_1.csv
file_2.csv
等,则可以。文件名应具有ID和品牌。“1167_6.csv”@zx8754只是一个问题,OP询问如何分组和写入csv(将函数应用于每个组),而链接的帖子给出了如何创建dfs列表以及如何在该列表的每个元素上应用函数的答案。“与我所拥有的相比有点低效,你不这么认为吗?”马苏德对你的回答毫无异议。这是一个非常简单的任务,如果你知道R的基本知识,就不需要额外的包。而且,这篇文章的回答很差,所以我以复制品的形式结束了。链接的帖子应该有助于开始使用帖子。如果不同意,请随意投票重新打开。@zx8754仅此一点,OP询问如何分组并写入csv(对每个组应用函数),而链接的帖子则回答如何创建dfs列表并对该列表的每个元素应用函数。“与我所拥有的相比有点低效,你不这么认为吗?”马苏德对你的回答毫无异议。这是一个非常简单的任务,如果你知道R的基本知识,就不需要额外的包。而且,这篇文章的回答很差,所以我以复制品的形式结束了。链接的帖子应该有助于开始使用帖子。如果不同意,请随时投票重新开放。