1
我相信這個問題有一個簡單的答案,但我找不到它。R:將函數應用於表併合並結果列表
我使用sapply總結了一個包含數千個觀察值的表格。每個觀測含有10種類型中的一個(編碼爲 「R」, 「B」,等等)表中的每一個柱( 「ASPRU」, 「ASPPL」 等):
ASPRU ASPBG ASPBY ASPCZ ASPHR ASPMK ASPPL ASPPLA ASPSK ASPSL ASPSR ASPSRA
...
460 I - I Z I I I - - I I I
461 I - I - I I I - Z I - I
462 I - - Z I - - - - - - -
463 Z Z Z - Z - Z Z Z I I Z
477 - - - O - - N - - - - -
478 - - I - - I I - - - I I
479 - Z I - I - - - - - I I
480 - I I I - - - Z - - - -
482 - - - - K - - - - - - K
483 O - - - O - O - - - - O
484 O - I - - - N O - A - O
我使用sapply和表:
sapply(colnames(NomSuff), function(x) {t(as.table(table(NomSuff[,x])))})
獲得每列存在的頻率列表。這是這樣的
$ASPRU
- A C I K L N O R S V Z М
8352 136 115 697 75 92 147 265 24 142 48 61 193
$ASPBG
- A C I K L N O S Z М
8899 191 119 388 14 128 183 193 93 76 63
$ASPBY
- A C I K N O S Z М
9194 92 85 385 18 160 213 71 60 69
等
注意,用於每列符號的集合是不同的列表。現在,顯然我需要一個類似下面的表格,每列的頻率合併起來,即
- A C I K L N O S Z М
ASPBG 8899 191 119 388 14 128 183 193 93 76 63
ASPBY 9194 92 85 385 NA 18 160 213 71 60 69
(更好的是,用0代替NA)。
我找不到辦法做到這一點。我試過幾種方式合併,但我想問題是我無法找到如何將適當格式的列表轉換爲合併。
非常整潔。非常感謝!現在我只需要找到一個函數來給我df中所有符號的清單。 –
試試'levels(unlist(df))'。 – fotNelton
謝謝,這是我真正想要的。我相應地更新了答案。 –