计算R中的对

时间:2015-04-08 20:18:09

标签: r count interaction key-pair

我有一个3列的数据集,第1列是ID(非唯一),第2列和第3列是分别与id关联的正负值。我是R的新手,只是想弄清楚如何计算与每个id相关联的值对的数量。表和独特的功能没有帮助,因为我必须计算对。谢谢!

3 个答案:

答案 0 :(得分:1)

使用data.table包

library(data.table)
tdata[, list(paircount = .N) , by = c("ID","COLUMN2","COLUMN3")]

编辑:

根据迈克尔的反馈,我可能误解了这个问题。

tdata[, list(paircount = nrow((unique(.SD)))), by = "ID"]

应该能满足你的需求。

答案 1 :(得分:1)

我假设您要计算每个ID的唯一对数。正如@BondedDust所提到的,使用interaction

df$pair <- with(df, interaction(COLUMN2, COLUMN3))
rowSums(xtabs(~ id + pair, df) > 0)

答案 2 :(得分:0)

也许试试

unique(data[,c("ID", "COLUMN2", "COLUMN3")])

或者,通过ID获得结果集合:

by(data = data[,c("COLUMN2", "COLUMN3")],INDICES = data$ID, FUN = unique)