计算R中的对

问题描述 投票:0回答:3

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

r count interaction key-pair
3个回答
1
投票

使用data.table包

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

编辑:

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

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

应该得到你需要的东西。


1
投票

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

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

0
投票

也许试试吧

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

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

by(data = data[,c("COLUMN2", "COLUMN3")],INDICES = data$ID, FUN = unique)
© www.soinside.com 2019 - 2024. All rights reserved.