我正在使用R中的表函数在R中创建一个包含两个变量的表。 我有像这样的data.frame
mytable
V1 V2 V3
1 a c
2 c d
3 b b
4 d a
5 d c
当我使用表函数表(mytable $ V2,mytable $ V3)时,我得到以下内容
a b c d
a 0 0 1 0
b 0 1 0 0
c 0 0 0 1
d 1 0 1 0
现在我真的想把情况'a-b'和'b-a'一样对待。或'b-c'与'c-b'相同。因此,我希望有一张桌子,对角线上方的所有东西都是空的。他需要将对角线上方的值添加到对角线下方的值。我怎么能在R?中做到这一点?
此外,我希望将此表格表示为热图,我通常使用ggplot2。但我不知道这是否适用于在对角线上方具有空值的表格。
答案 0 :(得分:3)
以下是手动修复方法:
tab <- table(DF[,2:3])
tab[lower.tri(tab)] <- tab[lower.tri(tab)] + tab[upper.tri(tab)]
tab[upper.tri(tab)] <- NA
# V3
#V2 a b c d
# a 0
# b 0 1
# c 1 0 0
# d 1 0 2 0