这是我桌子的前几行...
在R中,如何创建一个长表,其中Col A和Col B显示所有可能的组合,Col C包含a或b(或c或d或其值可能是什么),Col D显示Col的频率Col A 和 B 的每种组合的 C 值。
使用上面的示例,结果应如下所示(仅显示前几行)...
我尝试了melt()和table()的组合,但收效甚微。
as.data.frame.table(xtabs(~ ColA + ColB + ColC, dat))
# ColA ColB ColC Freq
# 1 1 1 a 2
# 2 2 1 a 0
# 3 1 2 a 1
# 4 2 2 a 0
# 5 1 1 b 1
# 6 2 1 b 2
# 7 1 2 b 1
# 8 2 2 b 1
数据
dat <- structure(list(ColA = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L), ColB = c(1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L), ColC = c("a", "a", "b", "b", "a", "b", "b", "b")), class = "data.frame", row.names = c(NA, -8L))