我有一个包含 3 列的数据框,每列包含少量值:
> df
# A tibble: 364 x 3
A B C
<dbl> <dbl> <dbl>
0. 1. 0.100
0. 1. 0.200
0. 1. 0.300
0. 1. 0.500
0. 2. 0.100
0. 2. 0.200
0. 2. 0.300
0. 2. 0.600
0. 3. 0.100
0. 3. 0.200
# ... with 354 more rows
> apply(df, 2, table)
$`A`
0 1 2 3 4 5 6 7 8 9 10
34 37 31 32 27 39 29 28 37 39 31
$B
1 2 3 4 5 6 7 8 9 10 11
38 28 38 37 32 34 29 33 30 35 30
$C
0.1 0.2 0.3 0.4 0.5 0.6
62 65 65 56 60 56
我想创建第四列,它将包含每一行每个值与每个组的频率的乘积。因此,例如,“Freq”列的第一个值将是 A 列中 0 的频率、B 列中 1 的频率和 C 列中 0.1 的频率的乘积。
如何使用 dplyr/baseR 有效地做到这一点?
需要强调的是,这不是每个总行的组合频率,而是 1 列频率的乘积