我正在運行仿真並需要測試不同大小公式的性能。從數據框中繪製列V1,V2,V3 ... Vk,我需要編程創建像fit <- ols(y ~ V1 + V2 + V3, data=dataframe)
等公式。以編程方式添加公式術語
如何編碼公式以便能夠縮放公式的長度?
我正在運行仿真並需要測試不同大小公式的性能。從數據框中繪製列V1,V2,V3 ... Vk,我需要編程創建像fit <- ols(y ~ V1 + V2 + V3, data=dataframe)
等公式。以編程方式添加公式術語
如何編碼公式以便能夠縮放公式的長度?
您可以文本轉換爲一個公式:
vars <- c(1, 2, 4)
formula.text <- paste0("y ~ V", paste(vars, collapse=" + V"))
formula.text
# [1] "y ~ V1 + V2 + V4"
library(rms)
fit <- ols(as.formula(formula.text), data=dataframe)
您可以使用reformulate
:
k <- 4
reformulate(paste0("V", seq(k)), response = "y")
# y ~ V1 + V2 + V3 + V4
這很優雅,謝謝! – koenbro
你能做到'醇(Y〜)'? –
@BlueMagister我有同樣的想法,但是當使用'ols(y〜。,data = dat)'創建一個例子時,它拋出了一個錯誤,因爲'terms.formula'沒有傳遞數據參數。 – Roland