1
我經常需要將大量變量從數據框轉換爲公式表達式。這些變量有時會在其中包含破折號/連字符,並且這會給問題帶來麻煩。在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)
這真的很聰明,我現在可以避免在模型調用之外定義公式,以及 'lm(y〜。,data = dat [,c(「y」,names(dat)[2])] )' –