【发布时间】:2020-08-14 03:10:44
【问题描述】:
我在下面有一个数据集:
# dt
Year ST CC ID M NonMissing Tot GRP_Mean
2004 55 35 60 NA 3 4 174.0000
2005 55 35 60 174 3 4 174.0000
2006 55 35 60 174 3 4 174.0000
2007 55 35 60 174 3 4 174.0000
2004 55 35 61 NA 3 4 158.3333
2005 55 35 61 174 3 4 158.3333
2006 55 35 61 127 3 4 158.3333
2007 55 35 61 174 3 4 158.3333
我按以下组创建了平均值:
dt[, GRP_Mean := mean(M, na.rm = T), by = .(ST, CC, ID)]
如何确定M 是否等于GRP_Mean。比如这样:
# dt
Year ST CC ID M NonMissing Tot GRP_Mean Equal
2004 55 35 60 NA 3 4 174.0000 TRUE
2005 55 35 60 174 3 4 174.0000 TRUE
2006 55 35 60 174 3 4 174.0000 TRUE
2007 55 35 60 174 3 4 174.0000 TRUE
2004 55 35 61 NA 3 4 158.3333 FALSE
2005 55 35 61 174 3 4 158.3333 FALSE
2006 55 35 61 127 3 4 158.3333 FALSE
2007 55 35 61 174 3 4 158.3333 FALSE
ID == 60 在M 列中具有相同的编号174,因此它们具有相同的GRP_Mean,给出TRUE。
但是,ID == 61 在M 列下没有完全相同的值,请给出 FALSE。
我该怎么做?
【问题讨论】:
标签: r data.table data-manipulation missing-data