2014-01-08 7 views
2

У меня есть dataframe:Получения уникальных строк таблицы и их номер

id y z 
oX 79 100 
oX 23 46 
oX 10 29 
uM 12 90 
uT 43 50 
uT 13 99 

Я хотел бы keeep уникальных строк на основе «ид», а также следить за оригинальный номер каждого идентификатора следующими :

oX:3 
uM:1 
uT:2 

Я konw, что я могу использовать либо уникальный()/дублируется() для первой части, но не знаете о том, как сохранить запись исходного числа каждого уникального ряда Как я могу это сделать? Благодаря

+0

Почему не просто 'table', как в' table (my ДФ $ ID) '? – A5C1D2H2I1M1N2O1R2T1

ответ

2

это будет делать то, что вы хотите:

> as.data.frame(table(a$id)) 
    Var1 Freq 
1 oX 3 
2 uM 1 
3 uT 2 
2

Предположим, что ваш data.frame называется "mydf", table должен работать нормально:

table(mydf$id) 
# 
# oX uM uT 
# 3 1 2 
+0

+1! возможно, вам нужно обернуть что-то вроде as.data.frame (table (..)), чтобы получить выход OP. – agstudy

2

Просто хотел разместить другую альтернативу, рассмотрим data.table

> library(data.table) 
> data.table(mydf)[,.N, by="id"] 
    id N 
1: oX 3 
2: uM 1 
3: uT 2 
+0

Потрясающе! Все решения работали для меня? Я очень ценю вашу помощь, ребята! Благодарю. – user27976

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