首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R数据处理与卡方检验

R数据处理与卡方检验
EN

Stack Overflow用户
提问于 2022-04-21 06:57:25
回答 1查看 31关注 0票数 0

我有一个数据框架:

代码语言:javascript
复制
gender   group   count    total
female    A       8        10
female    B       23       30
female    C       22       25
male      A       18       28
male      B       23       30
male      C       40       70

我应该如何处理数据并应用于性别之间的每一组的卡方检验?

EN

回答 1

Stack Overflow用户

发布于 2022-04-21 14:38:04

首先,使用dput功能可以方便地复制数据。

代码语言:javascript
复制
dput(dat)
structure(list(gender = c("female", "female", "female", "male",
"male", "male"), group = c("A", "B", "C", "A", "B", "C"), count = c(8L,
23L, 22L, 18L, 23L, 40L), total = c(10L, 30L, 25L, 28L, 30L,
70L)), class = "data.frame", row.names = c(NA, -6L)).   

然后可以按组(或性别)使用by函数,如下所示

代码语言:javascript
复制
by(dat, dat$group, function(x) chisq.test(data.frame(x$count, x$total)))
dat$group: A

Pearson's Chi-squared test with Yates' continuity correction

data:  data.frame(x$count, x$total)
X-squared = 0.011266, df = 1, p-value = 0.9155

代码语言:javascript
复制
dat$group: B

Pearson's Chi-squared test

data:  data.frame(x$count, x$total)
X-squared = 0, df = 1, p-value = 1

代码语言:javascript
复制
dat$group: C

Pearson's Chi-squared test with Yates' continuity correction

data:  data.frame(x$count, x$total)
X-squared = 1.0981, df = 1, p-value = 0.2947

但是,通过查看该方法创建的2*2矩阵,确保其测试完全符合您的要求是值得的:

例如

代码语言:javascript
复制
> by(dat, dat$group, function(x)data.frame(x$count, x$total))[1]
$A
  x.count x.total
1       8      10
2      18      28
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71950128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档