【发布时间】:2020-07-29 10:27:57
【问题描述】:
我有一个加密货币返回值的数据框,每个都根据价格分为 5 个一组(数据框有 1,847,012 个条目)
2014-01-02 XRP 0.064041998 1
2014-01-02 Dogecoin -0.220306670 1
2014-01-02 FLO 0.043457042 1
2014-01-02 CasinoCoin -0.080614279 2
2014-01-02 Nxt 0.048375563 2
2014-01-02 Quark 0.004495892 2
2014-01-02 Feathercoin 0.218078384 3
2014-01-02 Diamond 0.052490183 3
2014-01-02 Unobtanium -0.107420249 4
2014-01-02 Peercoin 0.263435789 4
2014-01-02 Primecoin 0.230874782 4
2014-01-02 Bitcoin 0.039387728 5
2014-01-02 Litecoin 0.045263780 5
2014-01-02 Namecoin 0.318292245 5
2014-01-02 Ethereum NA NA
... ... ... ...
2014-01-03 XRP -0.03900908 1
2014-01-03 Dogecoin -0.15273525 1
2014-01-03 FLO 0.02397348 1
2014-01-03 CasinoCoin 0.05748349 2
... ... ... ...
截至 2019 年 12 月 31 日的日期(如果当时不存在代币,则某些值不可用,例如 2014 年的以太坊)。
我想要做的是创建一个表格,每天取每个组的平均值,所以
2014-01-02 2014-01-03 2014-01-04 ...
1 mean(group 1) mean(group 1)
2 mean(group 2) mean(group 2)
3 mean(group 3) mean(group 3)
4 mean(group 4) mean(group 4)
5 mean(group 5) mean(group 5)
我试图查找并找到Aggregate / summarize multiple variables per group (e.g. sum, mean) 我尝试的是:
means = as.data.frame(aggregate(d$value, list(d$Group), mean, na.rm = TRUE))
但这仅适用于所有日期的每个组,并且总共给我 5 个值,我每天需要 5 个值
Group.1 x
1 -4.920999e-03
2 -3.372798e-03
3 -1.548296e-03
4 -5.959693e-05
5 6.303165e-04
我也尝试过使用data.table
df3 <- setDT(d)[, lapply(.SD, mean), by=.(date, Group), .SDcols=c("date","Group")]
但这无法读取日期
【问题讨论】:
标签: r data.table aggregate grouping mean