首页 文章

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

提问于
浏览
1

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

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文件中 . 我不确定是否有一些内置功能来执行此类操作,因此我想知道这是否可行 .

我想要的输出是:

small-A.csv

week1: total quantity
week2: total quantity
...

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

1 回答

  • 4

    你可以尝试这样的东西来保持'内部'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)
    

相关问题