我想將串列轉換為資料框(如下圖)
我確實使用過do.call(rbind.data.frame, contrast),但是,我得到了這個Error in xi[[j]] : this S4 class is not subsettable。我仍然可以單獨閱讀它們。有人知道這件事嗎?
我在使用包運行 ART anova 測驗時得到的這個串列 ARTool

更新
這是我用來計算和完成模型的原始代碼。
Organism_df_posthoc <- bird_metrics_long_new %>%
rbind(plant_metrics_long_new) %>%
mutate(Type = factor(Type, levels = c("Forest", "Jungle rubber", "Rubber", "Oil palm"))) %>%
mutate(Category = factor(Category)) %>%
group_by(Category) %>%
mutate_at(c("PD"), ~(scale(.) %>% as.vector())) %>%
ungroup() %>%
nest_by(n1) %>%
mutate(fit = list(art.con(art(PD ~ Category Type Category:Type, data = data),
"Category:Type",adjust = "tukey", interaction = T)))
的輸出fit是我已經展示過的。
uj5u.com熱心網友回復:
使用rbind, 而不是rbind.data.frame, 'emmGrid' 物件有一個特定的方法,它可以通過匹配來直接使用正確的方法,class如果我們只指定rbind
do.call(rbind, contrast)
-輸出
wool tension emmean SE df lower.CL upper.CL
A L 44.6 3.65 48 33.6 55.5
A M 24.0 3.65 48 13.0 35.0
A H 24.6 3.65 48 13.6 35.5
B L 28.2 3.65 48 17.2 39.2
B M 28.8 3.65 48 17.8 39.8
B H 18.8 3.65 48 7.8 29.8
A L 44.6 3.65 48 33.6 55.5
A M 24.0 3.65 48 13.0 35.0
A H 24.6 3.65 48 13.6 35.5
B L 28.2 3.65 48 17.2 39.2
B M 28.8 3.65 48 17.8 39.8
B H 18.8 3.65 48 7.8 29.8
Confidence level used: 0.95
Conf-level adjustment: bonferroni method for 12 estimates
原因是rbind當我們加載時有一個特定的方法emmeans
> methods('rbind')
[1] rbind.data.frame rbind.data.table* rbind.emm_list* rbind.emmGrid* rbind.grouped_df* rbind.zoo*
創建的示例中的結構與顯示的 OP 結構相匹配

通過使用rbind.data.frame,它不匹配,因為該類已經emmGrid
資料
library(multcomp)
library(emmeans)
warp.lm <- lm(breaks ~ wool*tension, data = warpbreaks)
warp.emmGrid <- emmeans(warp.lm, ~ tension | wool)
contrast <- list(warp.emmGrid, warp.emmGrid)
如果 OP 使用“ARTool”并且列不同,則上述解決方案可能不起作用,因為rbind要求所有物件具有相同的列名。我們可以tibble通過回圈listwith map(from purrr) 并系結它們來轉換為
library(ARTool)
library(purrr)
library(tibble)
map_dfr(contrast, as_tibble)
-輸出
# A tibble: 42 × 8
contrast estimate SE df t.ratio p.value Moisture_pairwise Fertilizer_pairwise
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <fct> <fct>
1 m1 - m2 -23.1 4.12 8.00 -5.61 0.00226 NA NA
2 m1 - m3 -33.8 4.12 8.00 -8.20 0.000169 NA NA
3 m1 - m4 -15.2 4.12 8.00 -3.68 0.0256 NA NA
4 m2 - m3 -10.7 4.12 8 -2.59 0.118 NA NA
5 m2 - m4 7.92 4.12 8 1.92 0.291 NA NA
6 m3 - m4 18.6 4.12 8 4.51 0.00849 NA NA
7 NA 6.83 10.9 24 0.625 0.538 m1 - m2 f1 - f2
8 NA 15.3 10.9 24 1.40 0.174 m1 - m3 f1 - f2
9 NA -5.83 10.9 24 -0.533 0.599 m1 - m4 f1 - f2
10 NA 8.50 10.9 24 0.777 0.445 m2 - m3 f1 - f2
# … with 32 more rows
資料
data(Higgins1990Table5, package = "ARTool")
m <- art(DryMatter ~ Moisture*Fertilizer (1|Tray), data=Higgins1990Table5)
a1 <- art.con(m, ~ Moisture)
a2 <- art.con(m, "Moisture:Fertilizer", interaction = TRUE)
contrast <- list(a1, a2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/343042.html
下一篇:如何更改R中下劃線前后的單詞順序
