将聚合数据表拆分为多个CSV文件

时间:2016-01-18 08:49:01

标签: r csv

我有一个数据表,其中包含有关某些特定服务使用情况的数据的行。此数据描述了不同地区不同服务类型的使用情况:

type     region     quantity     timestamp
small     A            2         05/01/15
small     B            1         05/01/15
big       A            1         05/01/15
small     A            2         06/01/15
small     B            1         06/01/15
big       A            3         06/01/15
...etc

我正在对类型和区域的每个唯一组合的数据系列执行一些操作(这些组合中的每一个都产生自己的时间序列,因此small-A应独立于small-B处理,例如)

我已经想出如何使用这样的聚合数据进行这些操作:

aggregatedDT <- DT[, .(quant = sum(quantity)), by = .(week, region,type)]

现在我需要将每个数据系列保存到单独的CSV文件中。我不确定是否有一些内置功能来执行此类操作,因此我想知道这是否可行。

我想要的输出是:

小A.csv

week1: total quantity
week2: total quantity
...

对于 small-B.csv big-A.csv 等同样的事情。此刻,我将这些数据放在一个聚合数据中。但是这些csv文件是另一个算法的输入,需要逐个获取时间序列。

1 个答案:

答案 0 :(得分:4)

你可以尝试这样的事情来保持内部&#39; data.table,同时生成适当的文件名:

aggregatedDT[,write.csv(.SD,file=sprintf("%s-%s.csv", unique(type),unique(region))),
             by=.(region,type)]

使用的数据:

aggregatedDT <- data.table(expand.grid(week=1:2, region=c("A","B"),type=c("big","small")),
                           quant=1:8)