首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进行单向方差分析

进行单向方差分析
EN

Stack Overflow用户
提问于 2021-10-31 00:58:45
回答 1查看 45关注 0票数 0

我有一个带有网格开放度量的数据集,以及用来获取这些度量的工具。我想在数据上完成一个单向的程序。这是我的密码:

代码语言:javascript
复制
df<-structure(list(MeasurementTool = c("Wedge", "Wedge", "Wedge", 
                                   "Wedge", "Wedge", "Wedge", "Wedge", "Wedge", "Wedge", "Wedge", 
                                   "Wedge", "Wedge", "Wedge", "Wedge", "Wedge", "Wedge", "Wedge", 
                                   "Wedge", "Wedge", "Wedge", "Weighted Wedge", "Weighted Wedge", 
                                   "Weighted Wedge", "Weighted Wedge", "Weighted Wedge", "Weighted Wedge", 
                                   "Weighted Wedge", "Weighted Wedge", "Weighted Wedge", "Weighted Wedge", 
                                   "Weighted Wedge", "Weighted Wedge", "Weighted Wedge", "Weighted Wedge", 
                                   "Weighted Wedge", "Weighted Wedge", "Weighted Wedge", "Weighted Wedge", 
                                   "Weighted Wedge", "Weighted Wedge", "ICES Gauge", "ICES Gauge", 
                                   "ICES Gauge", "ICES Gauge", "ICES Gauge", "ICES Gauge", "ICES Gauge", 
                                   "ICES Gauge", "ICES Gauge", "ICES Gauge", "ICES Gauge", "ICES Gauge", 
                                   "ICES Gauge", "ICES Gauge", "ICES Gauge", "ICES Gauge", "ICES Gauge", 
                                   "ICES Gauge", "ICES Gauge", "ICES Gauge"), 
               MeshOpening = c(157L, 155L, 160L, 160L, 161L, 160L, 158L, 161L, 162L, 162L, 160L, 163L, 
                                158L, 160L, 161L, 165L, 164L, 158L, 164L, 163L, 159L, 158L, 165L, 
                                164L, 159L, 160L, 158L, 159L, 160L, 163L, 159L, 160L, 158L, 158L, 
                                158L, 162L, 160L, 159L, 159L, 159L, 159L, 159L, 159L, 155L, 156L, 
                                156L, 158L, 160L, 156L, 155L, 160L, 160L, 157L, 159L, 158L, 155L, 
                                158L, 157L, 156L, 158L)), row.names = c(NA, -60L), class = "data.frame") 

df$`MeasurementTool`<- as.factor(df$`MeasurementTool`)

group_by(df, 'MeasurementTool') %>% summarise(count = n(), mean = mean('MeshOpening', na.rm = TRUE), sd = sd('MeshOpening', na.rm = TRUE))

它给了我这些警告信息:

警告消息:

1:在mean.default("MeshOpening",na.rm = TRUE)中:参数不是数字或逻辑:返回NA

2:在var中(if (is.vector(x) \x= is.factor(x)) x na.rm as.double(x),na.rm= na.rm):NAs由强制引入

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-31 01:14:45

你被dplyr::summarise的工作方式绊倒了。它期待一个R name (a.k.a )。( symbol),即字母周围没有引号:

代码语言:javascript
复制
group_by(df, 'MeasurementTool') %>% summarise(count = n(), mean = mean(MeshOpening, na.rm = TRUE), sd = sd(MeshOpening, na.rm = TRUE))
# A tibble: 1 × 4
  `"MeasurementTool"` count  mean    sd
  <chr>               <int> <dbl> <dbl>
1 MeasurementTool        60  159.  2.48

在前世,我们通常会像你一样,用它们的字符值来称呼列,但许多人似乎喜欢把列名看作是第一流的对象,就像现在在tidyverse中那样。

更好的办法不仅是解决错误的原因,而且要得到你真正想要的东西:

代码语言:javascript
复制
group_by(df, MeasurementTool) %>% summarise(count = n(), 
                                          mean = mean(MeshOpening, na.rm = TRUE), 
                                          sd = sd(MeshOpening, na.rm = TRUE))
# A tibble: 3 × 4
  MeasurementTool count  mean    sd
  <fct>           <int> <dbl> <dbl>
1 ICES Gauge         20  158.  1.73
2 Wedge              20  161.  2.56
3 Weighted Wedge     20  160.  2.06

可以说,如果group_by函数的第二个参数的值不被解释为与列名匹配的值,则应该抛出一个错误或至少一个警告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69783201

复制
相关文章

相似问题

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