2015-04-08 5 views
0

У меня есть набор данных из 3 столбцов с столбцом 1, являющимся идентификатором (НЕ УНИКАЛЬНЫМ) И КОЛОННЫМИ 2 И 3, являющимися положительным и отрицательным значением, связанным с идентификатором, соответственно. Я новичок в R и просто пытаюсь выяснить, как подсчитать количество пар значений, связанных с каждым идентификатором. Стол и уникальная функция не помогают, так как мне приходится считать пары. Благодаря!Подсчет пар в R

+2

Рассмотрите возможность использования 'взаимодействия'. Вам также нужно разместить пример. –

ответ

1

с data.table пакета

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

EDIT:

на основе Майкла обратной связи, я, возможно, неправильно понял вопрос.

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

должно предоставить вам то, что вам нужно.

+0

Я уверен, что если DataScience захочет сделать это, он или она просто будет использовать 'table()' ... –

+0

В чем разница между вашим методом и этим методом Arun http://stackoverflow.com/questions/26244685/ count-every-possible-pair-of-values-in-a-column-by-by-multiple-columns с помощью setorder и setkey? – skan

0

Может попробовать

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

Или, чтобы иметь результаты Groupes по ID:

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

Я предполагаю, что вы хотите подсчитать количество уникальных пар для каждого ID. Как указано в @BondedDust, используйте interaction:

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

 Смежные вопросы

  • Нет связанных вопросов^_^