【问题标题】:Remove variable from RHS of a formula that has a dot从具有点的公式的 RHS 中删除变量
【发布时间】:2015-04-10 14:09:07
【问题描述】:

我有一个数据框和一个存储在变量中的公式:

> d <- data.frame(cls=1, foo=2, bar=3)
> f <- formula(cls ~ .)

我想以编程方式从该公式的 RHS 中删除一个变量(在我的代码中,该变量的名称将作为字符串传递到某处)。我尝试使用update.formula:

> update(f, .~.-foo)    
Error in terms.formula(tmp, simplify = TRUE) : 
  '.' in formula and no 'data' argument

然后我尝试提供data 参数:

> update(f, .~.-foo, data=d)
Error in terms.formula(tmp, simplify = TRUE) : 
  '.' in formula and no 'data' argument

我知道如果初始公式右侧没有点,上述方法会起作用:

> f <- formula(cls ~ foo + bar)
> update(f, .~.-foo)
cls ~ bar

如果我无法确保 RHS 不包含点,如何从公式的 RHS 中删除变量?

【问题讨论】:

  • 这在lm() 的上下文中确实有效。我很惊讶它在这里不起作用。

标签: r formula


【解决方案1】:
update(terms(f, data = d), . ~ . - foo)
# cls ~ bar

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-27
    • 2011-06-24
    • 2021-12-20
    • 1970-01-01
    • 2016-07-07
    • 2015-12-27
    • 1970-01-01
    • 2021-02-12
    相关资源
    最近更新 更多