计算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中的对的主要内容,如果未能解决你的问题,请参考以下文章

未解决的对“片段”部分中的符号“”的引用

r 计算管道的步骤(基本片段)

R:如何计算列中用逗号分隔的所有字符值?

电脑上的对勾在手机上显示R 怎么回事

r R有用的代码片段

r R有用的代码片段