【发布时间】:2022-01-04 08:07:24
【问题描述】:
我有如下数据表:
DT <- structure(list(date = structure(c(18628, 18628, 18628, 18628,
18628, 18628, 18628, 18628, 18628, 18628, 18628, 18628, 18628,
18628, 18628, 18628, 18628, 18628, 18628, 18628, 18628, 18628,
18628, 18628, 18629, 18629, 18629, 18629, 18629, 18629, 18629,
18629, 18629, 18629, 18629, 18629, 18629, 18629, 18629, 18629,
18629, 18629, 18629, 18629, 18629, 18629, 18629, 18629, 18630,
18630, 18630, 18630, 18630, 18630, 18630, 18630, 18630, 18630,
18630, 18630, 18630, 18630, 18630, 18630, 18630, 18630, 18630,
18630, 18630, 18630, 18630, 18630, 18631, 18631, 18631, 18631,
18631, 18631, 18631, 18631, 18631, 18631, 18631, 18631, 18631,
18631, 18631, 18631, 18631, 18631), class = "Date"), Germany = c("50,87",
"48,19", "44,68", "42,92", "40,39", "40,2", "39,63", "40,09",
"41,27", "44,88", "45", "47,2", "50,78", "45,49", "44,73", "46,59",
"52,99", "60,26", "60,61", "60,36", "57,4", "53,86", "53,45",
"49,72", "46,69", "42,43", "41,09", "40", "37,55", "39", "42,09",
"44,96", "48,45", "52", "52", "52,15", "55,95", "52", "50,69",
"53,45", "59,99", "62", "63,08", "62,17", "60,03", "55,03", "52,25",
"48,45", "46,11", "43", "39,55", "35,18", "33,45", "32,37", "31,7",
"32,63", "36,9", "36,96", "36,96", "43,72", "47,71", "40,41",
"39,66", "39,57", "36,11", "45,04", "52,56", "45,84", "35,83",
"33,31", "34,98", "27,39", "29,33", "24,82", "24,65", "24,8",
"27,71", "28,58", "37,04", "52,03", "55,76", "57,06", "57,18",
"60", "61,27", "60,28", "60,07", "59,46", "61,99", "66,82"),
year = c(2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L,
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L,
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L,
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L,
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L,
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L,
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L,
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L,
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L,
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L,
2021L, 2021L)), class = c("data.table", "data.frame"), row.names = c(NA,
-90L))
现在我想通过date 列计算Germany 列的每日平均值。
使用时:
dt.mean <- DT[, .(DE = mean(Germany)), by = "date"]
它给了我以下错误:
Error in gmean(Germany) :
Type 'character' not supported by GForce sum (gsum). Either add the prefix base::sum(.) or turn off GForce optimization using options(datatable.optimize=1)
对于此数据表,2021-01-01 的每日平均值为 48.3983333,2021-01-02 的每日平均值为 50.5625。
我该如何解决这个问题?
【问题讨论】:
-
您的
Germany列是一个字符变量。要么将其转换为数值向量,要么创建两列,每个值一列。