0

列1がID(一意ではない)で、列2と3がそれぞれIDに関連付けられた正と負の値である3列のデータセットがあります。私はRが初めてで、各IDに関連付けられた値のペアの数を数える方法を見つけようとしています. ペアを数える必要があるため、テーブルと一意の関数は役に立ちません。ありがとう!

4

3 に答える 3

1

data.table パッケージを使用

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

編集:

Michael のフィードバックに基づいて、質問を誤解した可能性があります。

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

必要なものが得られるはずです。

于 2015-04-08T20:55:27.360 に答える
1

IDごとに一意のペアの数を数えたいと思います。@BondedDust が述べたように、次を使用しますinteraction

df$pair <- with(df, interaction(COLUMN2, COLUMN3))
rowSums(xtabs(~ id + pair, df) > 0)
于 2015-04-08T23:06:50.423 に答える
0

たぶん試してみてください

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

または、結果を ID でグループ化するには:

by(data = data[,c("COLUMN2", "COLUMN3")],INDICES = data$ID, FUN = unique)
于 2015-04-08T20:26:19.563 に答える