我确信这个问题有一个简单的答案,但我找不到。
我使用 sapply 来总结一个包含数千个观察值的表格。每个观察包含表中每一列(“ASPRU”、“ASPPL”等)的 10 种类型之一(编码为“R”、“B”等):
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)。
我找不到办法做到这一点。我已经尝试过多种方式合并,但我想问题是我无法找到如何以适当的格式转换列表以进行合并。