我有一個字串向量,如下所示Current output。我想知道是否有辦法提取這個向量的唯一元素(排除"(Intercept)")來實作我的Desired output下面?
可重現的代碼:
dat <- transform(mtcars, vs=ifelse(vs==0,"y","n"))
m <- lm(mpg ~ cyl hp wt*vs factor(gear), data = dat)
names(m$coef)
# Current output:
[1] "(Intercept)" "cyl" "hp" "wt"
[5] "vsy" "factor(gear)4" "factor(gear)5" "wt:vsy"
# Desired output:
[1] "cyl" "hp" "wt" "vs"
[5] "gear" "wt:vs"
uj5u.com熱心網友回復:
如果存在,我們可以獲取term.labels屬性并提取子字串()
sub("[^:] \\(([^)] ).*", "\\1", attr(terms(m), "term.labels"))
-輸出
[1] "cyl" "hp" "wt" "vs" "gear" "wt:vs"
對于更新的模型
m2 <- lm(mpg ~ cyl hp wt*vs*factor(gear) 0, data = dat)
sub("[^:] \\(([^)] ).*", "\\1", attr(terms(m2), "term.labels"))
[1] "cyl" "hp" "wt" "vs" "gear"
[6] "wt:vs" "wt:gear" "vs:gear" "wt:vs:gear"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/448788.html
