lm.plot 中 labels.id 的正确用法?

Correct usage for labels.id in lm.plot?

假设以下示例数据:

data <- iris
data$Sepal.Length[1:5] <- NA
model <- lm(Sepal.Length ~ Sepal.Width + Petal.Length, data = data)

我正在寻找在 plot.lm 中使用 labels.id 参数的正确方法。

我试过这个:

plot(model, labels.id=rownames(data))

但是,我不确定这是否提供了正确的名称。 data 中的某些行由于 NA 值而未在模型中使用。有没有一种简单的方法来使用正确的名称,或者我必须做这样的事情,我从 data:

中省略 NA
plot(model, labels.id = rownames(complete.cases(data[, "Sepal.Length"]))

回答

行名称保留在 lm 输出中:

plot(model, labels.id = rownames(model$model))

理由

在内部,lm 执行许多与输入数据相关的步骤。您可以在 lm 输出中找到很多信息。尝试 str(model, max = 1) 以获得印象。

1.保留行名的地方

names(model$residuals)                 # same: names(resid(model))
names(model$fitted.values)             # same: names(fitted(model))
rownames(model$model)

2。可以查看排除了哪些行的地方

model$na.action                        # same: na.action(model)
attr(model$model, "na.action")

3。对于后者,您还可以使用 names

查找行名称
names(model$na.action)                 # same: names(na.action(model))
names(attr(model$model, "na.action"))