Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 通过子集数据帧创建多个csv提取_R_Loops_Subset_Export To Csv - Fatal编程技术网

R 通过子集数据帧创建多个csv提取

R 通过子集数据帧创建多个csv提取,r,loops,subset,export-to-csv,R,Loops,Subset,Export To Csv,我已经搜索了很多问答,但还没有找到解决这个问题的方法。。。请参阅下面的尝试 我有一个交易数据集MAC_trans_sales_members,其中每个交易分配给一个客户ID,每个客户分配给一个队列,例如join.cohortcolumn中的“01/2016”。一个excel文件的行太多,所以我想为每个加入队列创建单独的子集,并将每个子集导出到单独的csv。大约有18个群组,所以我想自动化这个子集 我尝试了以下代码,但都不起作用: 尝试1 dt <- MAC_trans_sales_memb

我已经搜索了很多问答,但还没有找到解决这个问题的方法。。。请参阅下面的尝试

我有一个交易数据集MAC_trans_sales_members,其中每个交易分配给一个客户ID,每个客户分配给一个队列,例如join.cohortcolumn中的“01/2016”。一个excel文件的行太多,所以我想为每个加入队列创建单独的子集,并将每个子集导出到单独的csv。大约有18个群组,所以我想自动化这个子集

我尝试了以下代码,但都不起作用:

尝试1

dt <- MAC_trans_sales_members
setDT(dt)[, fwrite(.SD, paste0("output_", join.cohort,".csv")), 
      by = join.cohort, .SDcols=names(dt) ]

Error: is.character(file) && length(file) == 1 && !is.na(file) is not TRUE
…只是在控制台中输出数据行

我做错了什么???

join.question是代码中j中的一个向量。使用唯一的


对于您的尝试3,write.csv的file参数未传入。

谢谢-通过添加unique进行了更改,但现在我仍然收到错误消息:fwrite.SD、paste0output、uniquejoin.court中出错。csv:没有这样的文件或目录:“output_02/2016.csv”。无法创建用于写入的新文件。该文件不存在。您是否有在此写入的权限,磁盘上是否有空间,路径是否存在?有什么想法吗?文件路径输出_02/2016.csv必须存在才能正常工作。检查文件夹输出_02是否在您的工作目录中,您可以使用“getwd”进行检查谢谢-join.question中的变量格式为01/2016、02/2016等,因此输出代码将/作为文件夹级别。我重写了/to-现在它输出得很好,而且速度很快!
setDT(MAC_trans_sales_members)[, write.csv(.SD, paste0("output_", join.cohort,".csv")), 
by = join.cohort, .SDcols=names(MAC_trans_sales_members) ]

Error in file(file, ifelse(append, "a", "w")) : 
invalid 'description' argument
In addition: Warning message:
In if (file == "") file <- stdout() else if (is.character(file)) { :
the condition has length > 1 and only the first element will be used
daply(MAC_trans_sales_members, .(join.cohort), write.csv)
MAC_trans_sales_members[, 
    fwrite(.SD, paste0("output_", unique(join.cohort), ".csv")),
    by=join.cohort]