我不知道如何提取emmean 和SE从列emmGrid 的emmeans R包。下面给出了 MWE。
library(emmeans)
warp.lm <- lm(breaks ~ wool * tension, data = warpbreaks)
Test <- emmeans(warp.lm, specs = "wool")
Test
wool emmean SE df lower.CL upper.CL
A 31.03704 2.105459 48 26.80373 35.27035
B 25.25926 2.105459 48 21.02595 29.49257
Results are averaged over the levels of: tension
Confidence level used: 0.95
class(Test)
[1] "emmGrid"
attr(,"package")
[1] "emmeans"
Run Code Online (Sandbox Code Playgroud)
summary(Test) 改为提供 data.frame。
class(summary(Test))
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)[1] "summary_emm" "data.frame"
所以可以这样做:
summary(Test)$emmean
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)[1] 31.03704 25.25926
和
summary(Test)$SE
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)[1] 2.105459 2.105459
要真正获得一个新的子集化 data.frame,您需要显式强制转换为类 data.frame:
as.data.frame(summary(Test))[c('emmean', 'SE')]
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)emmean SE 1 31.03704 2.105459 2 25.25926 2.105459