2017-02-19 6 views
-1

私のデータのテーブルを生成するのに苦労します。ここに私のデータは次のとおりです。データフレームを使用したテーブルの生成

SF OO NS VM PP MP NO 
x 12 x x 10 x y 
x 13 y x 11 x y 
x 14 y x 12 x y 
x 15 x y 13 x x 
y 16 y y 14 y y 
x 17 x x 13 x y 
x 14 x x 16 x y 
y 19 x y 17 y y 
y 20 y y 18 y y 
y 21 y y 11 y y 
x 22 y x 20 y x 
y 23 y y 21 y y 
x 22 y y 23 y y 
y 25 x x 34 y y 

我々は唯一の選択した列のテーブルを生成する必要がある場合、私は、

Results  S1 S2 S3 S4 S5 
x    8  6 7 6 2 
y    6  8 7 8 12 
Total   14 14 14 14 14 

SF=S1, NS=S2, VM=S3, MP=S4, NO=S5 
+0

それとも別の重複はhttp://stackoverflow.com/questions/27969616/add-column-sum-to-tableまたはhttpです:// stackoverflowの.com/questions/13132186 /各セルのin-r-for-the-table-and-get-proportion-for-each-cell-in-r- – akrun

答えて

1

EDIT

このテーブルを取得するために

cols <- c("SF", "NS", "VM", "MP", "NO") 
addmargins(apply(df[cols], 2,table), 1) 
をしたいと思います

applyaddmarginsの機能を使用できます。データフレームをdfと考えると、dfの各列について、xyの頻度を、tableとカウントし、列方向にsumを計算します。

addmargins(apply(df, 2,table), 1) 

# SF NS VM MP NO 
#x 8 6 7 6 2 
#y 6 8 7 8 12 
#Sum 14 14 14 14 14 

列名を変更するには、

test <- addmargins(apply(df, 2,table), 1) 
colnames(test) <- paste0("s", 1:5) 
+0

ありがとう、見出しの名前を変更してテーブル – user17

+0

これらのデータはデータフレーム内に散在しているため、使用できません。どんな助け? – user17

+0

私はいくつかの列を持つデータフレームを持っていますが、これらの列のxとyの頻度を数えたいと思います。希望はこれを明確にする – user17

関連する問題