r-将单个表中的两列合并为一列



所以我有一个看起来有点像这样的数据集:

set0 <- data.frame(A = c("A", "B", "C", "D", "A", "B", "C", "D", "A", "B"),
B = c("E", "F", "G", "H", "I", "E", "F", "G", "H", "I"))

我需要创建一个计算结果的表,并将其放入表中。因此我使用:

set0 <- table(set0, exclude = c("H", "I"))
result:
#> set0
B
A   E F G
A 1 0 0
B 1 1 0
C 0 1 1
D 0 0 1

我想把F和G列合并到V:中

B
A   E V
A 1 0
B 1 1
C 0 2
D 0 1

我还需要合并我管理得很好的行(我想(。我怀疑会对列名使用以下内容,但我一直收到一个错误:下标越界(为此,我将行名更改为colname,与给定值相同(

set0 <- {set0["A", ] = set0["A", ] + set0["B", ]
set0[rownames(set0) != "B", ]}

那么,有没有什么方法可以合并列F和G,并将其更改为V?或者我可以用另一种工具来制作类似的表格。

您可以使用replaceifelse更改B的值,然后使用table:

table(transform(set0, B = replace(B, B %in% c('F', 'G'), 'V')), exclude = c("H", "I"))
#  B
#A   E V
#  A 1 0
#  B 1 1
#  C 0 2
#  D 0 1

最新更新