r - emmeans (R) 仅拦截功能是否损坏?
问题描述
我注意到 emmeans (在 R 中)在最新更新后不适用于仅拦截估计。
可重现的例子:
test=lm(mpg~1,mtcars)
library(emmeans)
emmeans::emmeans(test,~1)
我的两台机器(Windows 和 Linux)上的输出是:
> emmeans::emmeans(test,~1)
Error in `[[<-.data.frame`(`*tmp*`, ".wgt.", value = 2) :
replacement has 1 row, data has 0
这是一个已知问题,还是我以某种方式搞砸了我的系统?我相信这曾经有效。
如果您包含一个变量,它确实有效:
test2=lm(mpg~as.factor(cyl),mtcars)
emmeans(test2,~cyl)
非常感谢您提前提供的帮助。
解决方案
事实证明,问题#197的修复- 并包含在 CRAN 版本 1.47 中 - 产生了我们在此处看到的问题(#206) 。我想我现在把它们都修好了:
require(emmeans)
## Loading required package: emmeans
#206...
warp.lm <- lm(breaks ~ wool * tension, data = warpbreaks)
emmeans(warp.lm, "1")
## 1 emmean SE df lower.CL upper.CL
## overall 28.1 1.49 48 25.2 31.1
##
## Results are averaged over the levels of: wool, tension
## Confidence level used: 0.95
emmeans(warp.lm, "1", by = "wool")
## wool = A:
## 1 emmean SE df lower.CL upper.CL
## overall 31.0 2.11 48 26.8 35.3
##
## wool = B:
## 1 emmean SE df lower.CL upper.CL
## overall 25.3 2.11 48 21.0 29.5
##
## Results are averaged over the levels of: tension
## Confidence level used: 0.95
#197...
model <- lm(Sepal.Length ~ poly(Petal.Length,2), data = iris)
emtrends(model, ~ 1, "Petal.Length", max.degree = 2)
## degree = linear:
## 1 Petal.Length.trend SE df lower.CL upper.CL
## overall 0.4474 0.0180 147 0.4119 0.483
##
## degree = quadratic:
## 1 Petal.Length.trend SE df lower.CL upper.CL
## overall 0.0815 0.0132 147 0.0554 0.108
##
## Confidence level used: 0.95
由reprex 包(v0.3.0)于 2020 年 6 月 1 日创建
现在需要这个的用户可以通过 github 安装
remotes::install_github("rvlenth/emmeans")
推荐阅读
- dictionary - 更改数组标签值的微妙错误
- excel - 在任务计划程序中填充单元格的公式 (Excel 2013)
- python - keras traindata 形状与 testdata 形状不同,但我使用完整的 conv 网络
- javascript - WebGL-地球海拔/高度?
- javascript - 如何从 2 个相同长度的数组创建对象
- python - Python - 简单 if/else 语句的语法无效
- java - 无法使用 Jackson 从 JSON 中获取单个值
- javascript - Nodejs更改获取文件列表以获取内容的功能
- windows-installer - 使用 Visual Studio 设置和部署项目设置文件共享权限
- javascript - 使用数组对象获取最大更大的键值