r - 格式化考试结果以在 R 中执行 t 检验
问题描述
问题概述:我有一个数据集,其中包含 15 个问题的教学前和教学后考试的结果。我希望对结果进行 t 检验以比较整体均值,但难以正确格式化数据集。下面给出了数据集的一个示例部分:
1Pre 1Post 2Pre 2Post 3Pre 3Post 4Pre 4Post
Correct B B A A B B C C
1 B B C D C B C C
2 C B B D C B C A
3 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
4 B B B A B B C C
5 B B B A B B C C
6 C B D A A D C B
7 C C D D E E C C
8 C A B B A A <NA> <NA>
目标:我想将“正确”值与以下行中的值匹配给考生,这样 1 的值是正确的,而 0 的值是不正确的。我已经使用以下代码完成了这项工作:
for(j in 1:ncol(qDat)){
for(i in 1:nrow(qDat)){
if(qDat[i,j] == correctAns[1]){
qDat[i,j]=1
}else{
qDat[i,j]=0
}
}
}
然后,除了比较每个问题的前后分数之间的差异之外,我还想运行一个比较前后均值的 t 检验,但是,我需要省略任何带有 NA 的数据点。目前,我的方法不适用于任何 NA 值,因此将它们替换为零。有什么方法可以运行这些测试并简单地省略 NA 值?谢谢!
所需的输出:
1Pre 1Post 2Pre 2Post 3Pre 3Post
Correct B B A A B B
1 1 1 0 0 0 1
2 0 1 0 0 0 1
3 <NA> <NA> <NA> <NA> <NA> <NA>
4 1 1 0 0 1 1
5 1 1 0 0 1 1
6 0 1 0 1 0 0
7 0 0 0 0 0 0
8 0 0 0 0 0 0
解决方案
您可以尝试将以下参数传递给 t.test 调用:
na.action = na.omit
就像是:
with(qDat, t.test(`1Pre`, `1Post`, na.action = na.omit))
推荐阅读
- groovy - 如何在soapUI Groovy中提取body标签内的soap响应
- java - 用逗号分割字符串,但没有内括号
- angular - 无法使用 ng bootstrap 和 angular 6 在同一日历中设置日期
- lombok - 龙目岛@RequiredArgsConstructor。编译错误。构造函数未定义
- android - NDK - 从 NDK 中删除 GNUSTL 后的问题(修订版 r18)
- c# - 问题:在单个 AspNetCore MVC 视图页面上为具有不同模型的 4 个 PartialView 中的每一个添加共享条件
- python - 在sql查询中传递不带引号的变量
- r - 在 R 中生成具有不规则模式的序列
- regex - 布尔表达式的正则表达式几乎可以工作
- java - 如何开始一个项目?(不是字面意思)