You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将卡方检验的观测与期望计数导出为规范表格?

解决卡方检验表格单元格重复值问题

问题出在直接对data.frame使用paste时,会按列向量进行循环拼接,导致每个单元格重复显示整列的观测/期望值。以下是修正后的代码:

方法一:基于矩阵直接处理

# 生成交叉表(保留matrix格式)
test <- table(mtcars$am, mtcars$carb)
# 执行卡方检验
Xsq <- chisq.test(test)

# 逐元素拼接观测值与期望值,还原原表格结构
test2 <- matrix(
  paste(as.integer(test), paste0("(", round(Xsq$expected), ")"), sep = ""),
  nrow = nrow(test),
  dimnames = dimnames(test)
)
# 如需转为data.frame格式
test2 <- as.data.frame(test2)

方法二:针对data.frame逐列处理

test <- as.data.frame.matrix(table(mtcars$am, mtcars$carb))
Xsq <- chisq.test(test)

# 逐列匹配观测值与期望值并拼接
test2 <- mapply(function(obs_col, exp_col) {
  paste(obs_col, paste0("(", round(exp_col), ")"), sep = "")
}, test, as.data.frame(Xsq$expected))
test2 <- as.data.frame(test2)

两种方法都能让每个单元格呈现观测值(期望值)的格式,避免重复值问题。

内容的提问来源于stack exchange,提问作者four77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:39:57