2014-03-07 23 views
1

我正在運行仿真並需要測試不同大小公式的性能。從數據框中繪製列V1,V2,V3 ... Vk,我需要編程創建像fit <- ols(y ~ V1 + V2 + V3, data=dataframe)等公式。以編程方式添加公式術語

如何編碼公式以便能夠縮放公式的長度?

+0

你能做到'醇(Y〜)'? –

+0

@BlueMagister我有同樣的想法,但是當使用'ols(y〜。,data = dat)'創建一個例子時,它拋出了一個錯誤,因爲'terms.formula'沒有傳遞數據參數。 – Roland

回答

4

您可以文本轉換爲一個公式:

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) 
4

您可以使用reformulate

k <- 4 

reformulate(paste0("V", seq(k)), response = "y") 
# y ~ V1 + V2 + V3 + V4 
+0

這很優雅,謝謝! – koenbro