1

我正在关注使用 emmeans 检查交互的小插图 https://cran.r-project.org/web/packages/emmeans/vignettes/interactions.html

但我使用的是我自己的数据集(all.det)——它确实有重要的交互作用。all.det 包含 12 个变量的 1621 个观测值,其中 3 个是因子。我确实尝试创建一个可重现的示例,但还没有弄清楚如何创建一个所有交互都很重要的示例。所以我希望这个描述足以让有人指出我哪里出错了。

我在用

library(data.table)
library(car)
library(emmeans)

我使用此代码运行方差分析

DistanceKm 是一个数值,Method、IDGroup 和 Sightability 是因子。

model = lm(DistanceKm ~ Method * IDGroup * Sightability,
           data=all.det[(IDGroup == "Whale" | IDGroup == "Dolphin")
                        & DistanceKm <=5])
Anova(model, type="II")

所有的交互都很重要,所以我按照小插图中的建议使用交互图来跟进

emmip(model, Method ~ Sightability | IDGroup)

但我得到这些错误

Error in if (!all(chk == tbl)) stop("Data appear to be randomized -- ",  : 
  missing value where TRUE/FALSE needed
Error in ref_grid(object, ...) : 
  Perhaps a 'data' or 'params' argument is needed

我确实尝试创建我的数据的一个子集

sub=all.det[(IDGroup == "Whale" | IDGroup == "Dolphin") & DistanceKm <=5]

然后重新运行模型,然后是 Anova

model=lm(DistanceKm ~ Method * IDGroup * Sightability, data=sub)
Anova(model, type="II")

我得到了相同的 Anova 结果(如预期的那样),但现在我也能够无错误地生成交互图。

emmip(model, Method ~ Sightability | IDGroup)

我只收到一个关于缺失值的警告

打电话给emmip时我错过了什么吗?

4

1 回答 1

2

我有一个类似的警告,然后发现我在数据框中错误地标记了我的一个因素。检查您的数据框并确保不存在任何不应该存在的 NA 值。

于 2020-08-22T04:39:38.483 回答