R中的计数对

Counting pairs in R

我有一个包含 3 列的数据集,其中第 1 列是 ID(不唯一),第 2 列和第 3 列分别是与 id 关联的正值和负值。我是 R 的新手,只是想弄清楚如何计算与每个 ID 关联的 对值 的数量。 table 和 unique 函数没有帮助,因为我必须数对。谢谢!

也许试试

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

或者,按 ID 对结果进行分组:

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

与 data.table 套餐

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

编辑:

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

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

应该能满足您的需求。

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

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