【发布时间】:2015-01-06 09:46:54
【问题描述】:
我正在尝试使用 data.table 按组显示重复项。更具体地说,我试图找出一个国家在给定年份是否有多个观察结果。这是一个示例数据集:
# load data.table package, assuming it's installed
library(data.table)
# create dataset
year <- rep(2010:2012, 3)
country <- c(rep("A", 3), rep("B", 3), rep("C", 3))
value <- sample(2:200, 9, replace = TRUE)
df <- cbind(year, country, value)
df <- rbind(df, c(2012, "C", 20))
df # show data
# put data frame in data.table format and set year as key
dt <- data.table(df)
setkey(dt, year)
请注意,对于 2012 年,国家“C”是两个观测值,而所有其他国家/地区的观测值在年份上都是独一无二的。
我希望以下代码会为我提供重复国家和年份的名称:
dt[duplicated(country), country, by = year]
相反,它显示了 2011 年以后的所有数据,这意味着重复函数应用于整个 data.table,而不是按年份。我将如何使用 data.table 提取 2012 年国家“C”的单个重复值?
【问题讨论】:
标签: r data.table