我有一個帶有網格開口測量值的資料集和用于獲取這些測量值的工具。我想對資料完成單向方差分析。這是我的代碼:
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) || is.factor(x)) x else as.double(x), na.rm = na.rm) : 由強制引入的 NA
uj5u.com熱心網友回復:
你被dplyr::summarise作業方式絆倒了。它期待一個 R name(又名symbol),即字母周圍沒有引號:
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 之前的日子里,我們經常會像您一樣通過字符值名稱來參考列,但許多人似乎喜歡將列名視為一流的物件,就像現在 tidyverse 中的規范一樣。
更好的是不僅要解決錯誤的原因,還要得到你真正想要的:
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 函式的第二個引數的值不會被解釋為與列名匹配的值,則該函式應該拋出錯誤或至少是一個警告。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/343031.html
