代码之家  ›  专栏  ›  技术社区  ›  rcorty

在R中修改混合效应公式

  •  0
  • rcorty  · 技术社区  · 7 年前

    我有一个公式:

    my_formula <- a ~ b + (1|d) + e
    

    e

    我对固定效应公式所做的是:

    drop_es <- function(f) {
        e_idxs <- grep(pattern = 'e',
                       x = all.vars(f[[3]]))
    
        stats::formula(stats::drop.terms(termobj = stats::terms(f),
                                         dropx = e_idxs,
                                         keep.response = TRUE))
    }
    

    这只适用于固定效果公式:

    drop_es(f = a ~ b + e)
    

    drop_es(f = a ~ b + (1|d) + e)
    

    a~b+1 | d

    a ~ b|d
    

    如何删除 e

    1 回复  |  直到 7 年前
        1
  •  3
  •   MrFlick    7 年前

    这个 update 函数用于修改公式。使用

    update(my_formula, ~.-e)
    # a ~ b + (1 | d)
    

    这个 -e 表示从公式中删除“e”项,同时 . 意味着保留其他一切。