R 合并两个列不均匀的表并保留这两个值
示例数据:R 合并两个列不均匀的表并保留这两个值,r,merge,R,Merge,示例数据: set0 <- data.frame(A = c("A", "B", "C", "D", "A", "B", "C", "D", "A", "B"), B = c("E", "F", &quo
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"))
您可以从
mset0
中删除最后一行和最后一列并替换
mset0[-nrow(mset0), -ncol(mset0)] <- sprintf('%s [%s]', mset0[-nrow(mset0), -ncol(mset0)], cset0)
mset0
# B
#A E R V Sum
# A 1 [0.6] 2 [1.2] 0 [1.2] 3
# B 1 [0.6] 1 [1.2] 1 [1.2] 3
# C 0 [0.4] 0 [0.8] 2 [0.8] 2
# D 0 [0.4] 1 [0.8] 1 [0.8] 2
# Sum 2 4 4 10
mset0[-nrow(mset0),-ncol(mset0)]
cset0 <- chisq.test(set0)$expected %>% round(digits = 2)
> cset0
B
A E R V
A 0.6 1.2 1.2
B 0.6 1.2 1.2
C 0.4 0.8 0.8
D 0.4 0.8 0.8
mset0 <- addmargins(set0)
> mset0
B
A E R V Sum
A 1 2 0 3
B 1 1 1 3
C 0 0 2 2
D 0 1 1 2
Sum 2 4 4 10
# B
#A | E | R | V | Sum
# A | 1 [0.6]| 2 [1.2]| 0 [1.2]| 3
# B | 1 [0.6]| 1 [1.2]| 1 [1.2]| 3
# C | 0 [0.4]| 0 [0.8]| 2 [0.8]| 2
# D | 0 [0.4]| 1 [0.8]| 1 [0.8]| 2
# sum| 2 | 4 | 4 | 10
mset0[-nrow(mset0), -ncol(mset0)] <- sprintf('%s [%s]', mset0[-nrow(mset0), -ncol(mset0)], cset0)
mset0
# B
#A E R V Sum
# A 1 [0.6] 2 [1.2] 0 [1.2] 3
# B 1 [0.6] 1 [1.2] 1 [1.2] 3
# C 0 [0.4] 0 [0.8] 2 [0.8] 2
# D 0 [0.4] 1 [0.8] 1 [0.8] 2
# Sum 2 4 4 10