计算R中的对
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算R中的对相关的知识,希望对你有一定的参考价值。
我有一个3列的数据集,第1列是ID(非唯一),第2列和第3列是分别与id关联的正负值。我是R的新手,只是想弄清楚如何计算与每个id相关的值对的数量。表和独特的功能没有帮助,因为我必须计算对。谢谢!
答案
使用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)
另一答案
也许试试吧
unique(data[,c("ID", "COLUMN2", "COLUMN3")])
或者,通过ID获得结果集合:
by(data = data[,c("COLUMN2", "COLUMN3")],INDICES = data$ID, FUN = unique)
以上是关于计算R中的对的主要内容,如果未能解决你的问题,请参考以下文章