簡體   English   中英

提取字符串向量的唯一元素

[英]extracting unique elements of a string vector

我有一個字符串向量,如下所示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"

我們可以獲得term.labels屬性並在()中提取 substring(如果存在)

sub("[^:]+\\(([^)]+).*", "\\1", attr(terms(m), "term.labels"))

-輸出

[1] "cyl"   "hp"    "wt"    "vs"    "gear"  "wt:vs"

對於更新 model

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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM