r - 无法使用 tidy 从 aov 中获得额外的 p 值
问题描述
我正在使用这个 R- 一种方法 anova 提取 p_value 但失败了......
所以这是我的代码:
anova_sink<-c("a","b","c","d")
aov_result<-vector()
p_result<-vector()
for(i in 1:(length(anova_sink))){
aov_result[i]<-aov(as.formula(paste("value","~",anova_sink[i])),df)
p_result[i]<-tidy(aov_result[i])$p.value
}
这返回错误
Error: No tidy method recognized for this list.
但根据
https://rdrr.io/cran/broom/man/tidy.aov.html
应该没问题。
我真的不知道为什么...
老实说,在这一点上,我的问题已经通过从 aov 中提取 p-value解决了,但是,我仍然想知道为什么其他方法失败了。
解决方案
您需要使用双括号(见this)来访问列表的元素,所以它应该是:
tidy(aov_result[[i]])
和
aov_result[[i]]
下面是一个示例数据集:
set.seed(111)
df = data.frame(matrix(rnorm(100),ncol=5))
colnames(df) = c("a","b","c","d","value")
然后我们运行您更正的代码,注意我们从 out 获得第一个 p.value tidy()
:
anova_sink<-c("a","b","c","d")
aov_result<-vector("list",length(anova_sink))
p_result<-vector()
for(i in 1:(length(anova_sink))){
aov_result[[i]]<-aov(as.formula(paste("value","~",anova_sink[i])),df)
p_result[i]<-tidy(aov_result[[i]])$p.value[1]
}
p_result
[1] 0.95105366 0.00341931 0.48760857 0.95084692
推荐阅读
- python - numpy.where 带有二维元组数组
- php - 下拉列表在 Chrome 中提供,但在 Firefox 中没有
- c++ - c++ - 如何使用运算符重载将矩阵与数字相加?
- sql - sql group by 没有 sum 函数
- python - Pandas:如何计算一列相对于另一列的百分比?
- cross-validation - 生存分析的交叉验证输出解释
- node.js - 在节点中使用 dynamoose 在 dynamodb 模式中搜索值列表
- r - csv(或txt)格式的配置文件
- c# - 为什么 ApiAuthorization 在 .NET 5 中不起作用
- python - 变形金刚:如何使用抱脸EncoderDecoderModel做机器翻译任务?