How to reliably get dependent variable name from formula object?

前端 未结 7 852
清酒与你
清酒与你 2021-01-31 02:29

Let\'s say I have the following formula:

myformula<-formula(\"depVar ~ Var1 + Var2\")

How to reliably get dependent variable name from formu

相关标签:
7条回答
  • 2021-01-31 03:32

    This should always give you all dependent vars:

    myformula<-formula("depVar1 + depVar2 ~ Var1 + Var2")
    as.character(myformula[[2]])[-1]
    #[1] "depVar1" "depVar2"
    

    And I wouldn't consider this particularly "hacky".

    Edit:

    Something strange happens with 3 dependents:

    myformula<-formula("depVar1 + depVar2 + depVar3 ~ Var1 + Var2")
    as.character(myformula[[2]])
    #[1] "+"                 "depVar1 + depVar2" "depVar3" 
    

    So this might not be as reliable as I thought.

    Edit2:

    Okay, myformula[[2]] is a language object and as.character seems to do something similar as languageEl.

    length(myformula[[2]])
    #[1] 3
    languageEl(myformula[[2]],which=1)
    #`+`
    languageEl(myformula[[2]],which=2)
    #depVar1 + depVar2
    languageEl(myformula[[2]],which=3)
    #depVar3
    languageEl(languageEl(myformula[[2]],which=2),which=2)
    #depVar1
    

    If you check the length of each element, you could create your own extraction function. But this is probably too much of a hack.

    Edit3: Based on the answer by @seancarmody all.vars(myformula[[2]]) is the way to go.

    0 讨论(0)
提交回复
热议问题