r - Chisq Test R:数据框中的多个组
问题描述
我是 R 新手,正在尝试进行一些统计测试。
我的数据看起来像这样:
Name Freqeunce Target Total
Steve 1 A 11
Marcel 1 A 11
Marie 1 A 11
John 2 A 11
Max 2 A 11
Alice 4 A 11
Mariane 1 B 1
Rose 1 C 3
Carla 1 C 3
Happy 1 C 3
我想为每种目标类型(A、B 和 C)实现同质的 Chi2。
我想知道 R 是否有可能运行一个循环,将每个名称的 p.value 写入列中,还是我必须先提取信息然后实现 Chi2?目的是根据频率识别组中较少代表的不同名称。并且有超过 2000 个组,这就是我想要一个循环的原因。
谢谢您的回答
巴蒂斯特
解决方案
我想这会回答你的问题。我不知道这是否是您想要的 chi^2 测试类型,但您可以随时更改功能。我使用包中的group_by
and并编写一个函数来执行 chi^2 测试并提取 pvalue。mutate
dplyr
library(dplyr)
df <- read.table("test2.txt", header = T)
c2_all <- function(x,y){
mat <- matrix(c(x,y),nrow = 2)
c2 <- chisq.test(mat)
return(c2$p.value)
}
result <- df2 %>% group_by(Target) %>% mutate(pvalue = c2_all(Name,Freqeunce))
result
# A tibble: 11 x 5
# Groups: Target [3]
Name Freqeunce Target Total pvalue
<fct> <int> <fct> <int> <dbl>
1 Steve 1 A 11 0.285
2 Marcel 1 A 11 0.285
3 Marie 1 A 11 0.285
4 John 2 A 11 0.285
5 Max 2 A 11 0.285
6 Alice 4 A 11 0.285
7 Sarah 2 B 3 1.00
8 Mariane 1 B 3 1.00
9 Rose 1 C 5 0.223
10 Carla 3 C 5 0.223
11 Happy 1 C 5 0.223
推荐阅读
- twitter-bootstrap - 如何将 flask_wtf 表单合并到 Bootstrap 表单中?
- python - 什么是“perm="elradfmwMT"”?
- php - 有没有办法配置 php heredoc 变量替换?
- r - matchit 包每次都会产生不同的结果吗?
- html - 如何使用 jquery 获取输入值
- python - 如何在 python 中操作 txt 文件全部为小写?
- python - 如何打印新创建的不和谐文本频道的 ID?
- c++ - C++嵌套开关重复值错误
- apache-flink - 如果一个键再也见不到,那么没有 TTL 的键控窗口全局状态会发生什么?
- python - 如何使用 numpy einsum 函数对 3D 数组执行矩阵乘法以获得 2D 乘积矩阵?