从lm对象获取变量名称,而无需分隔因子级别

问题描述 投票:0回答:2

我需要从lm模型中获取变量名称。 variable.names()很好,除非其中一个变量是factor,在这种情况下:

model <- lm(Petal.Length~Petal.Width+Species, data=iris)
variable.names(model)

返回:

"(Intercept)"       "Petal.Width"       "Speciesversicolor"        "Speciesvirginica" 

我需要Species变量仅出现一次,而无需为每个因素指定不同的级别,例如:

"(Intercept)"       "Petal.Width"       "Species" 
r linear-regression
2个回答
2
投票

您可以从all.vars中使用call提取名称,删除最后一个作为数据的字符串。

all.vars(model$call)[1:length(model$call)]
# [1] "Petal.Length" "Petal.Width"  "Species"  

0
投票

获取模型的namesmodel.frame

names(model.frame(model))
## [1] "Petal.Length" "Petal.Width"  "Species"   
© www.soinside.com 2019 - 2024. All rights reserved.