【发布时间】:2019-07-03 23:41:12
【问题描述】:
我有一个如下所示的数据集:
library(data.table)
df <- fread(
"A B C fac H I J iso year matchcode
0 1 1 NA 0 1 0 NLD 2009 NLD2009
1 0 2 NA 1 0 1 NLD 2009 NLD2009
0 0 3 B 1 0 0 AUS 2011 AUS2011
1 0 4 B 0 1 0 AUS 2011 AUS2011
0 1 7 NA 0 0 0 NLD 2008 NLD2008
1 0 1 A 0 1 0 NLD 2008 NLD2008
0 0 3 B 1 0 0 AUS 2012 AUS2012
1 0 4 B 0 1 0 AUS 2012 AUS2012",
header = TRUE
)
对于我想检查的每个国家/地区,C 的平均值是否随时间变化。所以我做了:
setDT(df)[, c("MeanValue_C", "Residual_C") := {m= mean(C, na.rm=TRUE);list(m, C-m)}, by=list(iso, year)]
这基本上给了我想要的信息。但是没有任何有用的格式。我试着做table(df$MeanValue_C, df$matchcode),但这造成了很大的混乱,因为实际的数据集有大约 100 个国家,有 2 年或更长时间。
在不创建额外数据表的情况下,比较每个国家/地区的组均值的最简单方法是什么?
最好是这样的:
df2 <- fread(
"C iso year matchcode
1.5 NLD 2009 NLD2009
3.5 AUS 2011 AUS2011
4 NLD 2008 NLD2008
3.5 AUS 2012 AUS2012",
header = TRUE
)
【问题讨论】:
-
不清楚你到底在追求什么。你有逐年的手段;你想形象化他们吗?做一些统计测试?总结一下?
-
我添加了一些示例输出。我想目前我只想总结一下它们..
标签: r data.table mean