2015-02-02 3 views
0

Привет У меня есть кадра данных Y, которая выглядит следующим образомПодсчет комбинированных вхождений через две колонки

O T Dist 
2 13 0.123 
2 3 0.452 
2 4 0.213 
3 5 0.231 
3 8 0.213 
4 5 0.123 
5 8 0.543 

Я хочу, чтобы создать новый кадр данных, который подсчитывает общее количество раз число появляется в столбце O и столбец Т объединяется. Результат должен выглядеть так.

P freq 
2 3 
3 3 
4 2 
5 3 
8 2 
13 1 

Заранее спасибо за помощь

ответ

2

Что об этом?

as.data.frame(table(c(df$O, df$T))) 
    Var1 Freq 
1 2 3 
2 3 3 
3 4 2 
4 5 3 
5 8 2 
6 13 1 
+1

Это не так. Я бы рассмотрел только первый столбец, и он хочет, чтобы первые два столбца были объединены. – DatamineR

+0

Спасибо за решение – akakakak

+0

Ты совершенно прав @RStudent, извинения –

1
counts = table(c(df$O,df$T)) 
new.df = data.frame(P=as.integer(names(counts)),Freq=as.integer(counts)) 
+0

спасибо за решение – akakakak

0

Вот вариант использования data.table, где выбрать столбцы "O", "Т" в наборе данных "Y" (Y[-3]), unlist, создать "data.table" с setDT(list(..)), (.N)

library(data.table) 
setDT(list(unlist(Y[-3])))[,.N, keyby=V1] 
# V1 N 
#1: 2 3 
#2: 3 3 
#3: 4 2 
#4: 5 3 
#5: 8 2 
#6: 13 1 
Смежные вопросы