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

R语言基于research_funding_rates构建2×2列联表执行chisq.test报错求解

报错原因

summarise() 返回的是 tibble(数据框类结构),直接将其传入 matrix() 时,R会把整个数据框作为列表处理,而不是提取内部的4个数值构建矩阵,最终生成的表格结构不符合卡方检验的输入要求。

修复方案

最简修改方式

如果仅调整你原有代码的错误,只需要在构造矩阵时加unlist()把tibble转成数值向量即可:

t <- as.table(matrix(unlist(r_s_t), ncol = 2, byrow=TRUE))
chisq.test(t)

完整规范实现

带行列标注的可直接复用的完整代码如下:

# 加载依赖包
library(dslabs)
library(tidyverse)
data("research_funding_rates")

# 计算未获奖人数、汇总全学科数据
r_s <- research_funding_rates %>% 
  mutate(not_awarded_men = applications_men - awards_men,
         not_awarded_women = applications_women - awards_women)

sum_v <- r_s %>% 
  summarise(awarded_men = sum(awards_men),
            not_awarded_men = sum(not_awarded_men),
            awarded_women = sum(awards_women),
            not_awarded_women = sum(not_awarded_women)) %>% 
  unlist()

# 构建带语义标注的2×2列联表
cont_table <- matrix(sum_v,
                     nrow = 2,
                     byrow = TRUE,
                     dimnames = list(性别 = c("男性", "女性"),
                                     获奖状态 = c("获奖", "未获奖")))

# 执行卡方检验
chisq.test(cont_table)

运行后会正常输出卡方值、自由度、p值等检验结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:09:01