避免连字符在as.formula中减去

时间:2017-06-13 16:15:03

标签: r

我经常需要将大量变量从数据框转换为公式表达式。这些变量有时会有破折号/连字符,这会给as.formula带来麻烦。

我知道我可以从数据框名称中gsub这些,但这是不合需要的,因为我需要映射回使用连字符的其他注释文件。

我有一个解决方法可以利用下面的反引号(`)和paste0,但它感觉很笨(即难以阅读,可能效率低于基础上的东西未接电话)。

是否有更简单的表达式可以完成这项工作?

dat <- data.frame(rnorm(100), rnorm(100))
names(dat) <- c("y", "x-1")

form <- as.formula(paste("y~", names(dat)[2]))
form #treats hyphen as minus
lm(form, data = dat) #error

# is this the only workaround?
form <- as.formula(paste("y~", paste0("`", names(dat)[2], "`")))
form
lm(form, data = dat)

1 个答案:

答案 0 :(得分:2)

我使用f <- y ~ . lm(f, dat)

database/__init__.py

将data.frame子集设置为仅包含感兴趣的变量。