2016-07-29 20 views
-1

は、私はこのようなデータテーブルを持っていると言う:Rの複数の列を持つデータテーブルの値の頻度を数えます。

id  days  age 
"jdkl" 8   23 
"aowl" 1   09 
"mnoap" 4   82 
"jdkl" 3   14 
"jdkl" 2   34 
"mnoap" 27   56 

私はIDを持つ1列と、彼らが表示される回数に1列を持つ、新しいデータテーブルを作成したいです。私はデータテーブルが= .Nで何かを持っていることを知っていますが、私はそれを1つのカラムだけに使う方法がわかりませんでした。

最終データテーブルは次のようになります。あなたがdata.tableを使用してそれを実行したい場合は、しかし、

as.data.frame(sort(table(df$id), decreasing = T)) 

id   count 
"jdkl"  3 
"aowl"  2 
"mnoap"  1 

答えて

0

あなただけのベースRからtableを使用することができます

library(data.table) 
setDT(df)[, .(Count = .N), by = id][order(-Count)] 

またはdplyrソリューション

library(dplyr) 
df %>% count(id) %>% arrange(desc(n)) 
+1

@shayaaから

library(dplyr) df %>% group_by(id) %>% summarise(Count = n()) %>% arrange(desc(Count)) 

または使用aggregate使用することができます:私はOPで掲示出力と一致するように配置されました。ベース 'R'の出力を整理するにはあまりにも怠惰です:D – Sumedh

0

我々はbase R

r1 <- aggregate(cbind(Count=days)~id, df1, length) 
r1[order(-r1$Count),] 
#  id Count 
#2 jdkl  3 
#3 mnoap  2 
#1 aowl  1 
関連する問題