2013-06-21 20 views
7

IDで構成されるデータフレームの列(このDATAと呼ぶ)を要約したので、指定した列の各IDの合計数を取得しました。私はこれを別のデータフレーム(これをTOTALNUMと呼ぶ)に変換したいので、2つのカラムがあります。最初の列はID自体で、2番目の列は各IDの合計数です。これは可能ですか?要約出力をデータフレームに変換する方法は?

サンプルデータ:

ids <- c(1,2,3,4,5,1,2,3,1,5,1,4,2,2,2) 
info <- c("A","B","C","A","B","C","A","B","C","A","B","C","A","B","C") 
DATA <- data.frame(ids, info) 
DATA$ids <- as.factor(DATA$ids) 

私は、データフレームに入れたいと思います: トップ行は、新たなデータフレームの最初の列になります。 2番目の行は新しいデータフレームの2番目の列になります。

summary(DATA$ids) 

は、これは私が見えるようにデータフレームを希望するものである:

ids nums 
1  4 
2  5 
3  2 
4  2 
5  2 

感謝!!あなたのアプローチで

答えて

5

、あなたはsummaryidsの各値の名前で、カウントのベクトルを返すという事実を利用することができます - と、このアプローチは、より簡単です -

> my.summary <- summary(DATA$ids) 
> data.frame(ids=names(my.summary), nums=my.summary) 
    ids nums 
1 1 4 
2 2 5 
3 3 2 
4 4 2 
5 5 2 

それとも、 idsに基づいて頻度表を作成し、それをデータフレームに変換することができます:

> as.data.frame(table(ids), responseName="nums") 
    ids nums 
1 1 4 
2 2 5 
3 3 2 
4 4 2 
5 5 2 
+0

ありがとう - 私はそれがとてもシンプルだったとは思いませんでした! 2番目のアプローチは、私が使ったアプローチでした。 – Sheila

関連する問題