Anda juga dapat menggunakan kombinasi formula
dan paste
fungsi.
Data Setup : Mari Ini bayangkan kita memiliki data.frame yang berisi variabel prediktor x1
untuk x100
dan variabel dependen kami y
, tapi itu ada juga variabel gangguan asdfasdf
. Juga variabel prediktor disusun dalam urutan sedemikian rupa sehingga tidak semua bersebelahan dalam data.frame.
Data <- data.frame(matrix(rnorm(102 * 200), ncol=102))
names(Data) <- c(paste("x", 1:50, sep=""),
"asdfasdf", "y", paste("x", 51:100, sep=""))
Bayangkan juga bahwa Anda memiliki string yang berisi nama-nama variabel prediktor. Dalam hal ini, ini dapat dengan mudah dibuat menggunakan paste
fungsi, tetapi dalam situasi lain, grep
atau beberapa pendekatan lain mungkin digunakan untuk mendapatkan string ini.
PredictorVariables <- paste("x", 1:100, sep="")
Terapkan pendekatan : Kami kemudian dapat membuat formula sebagai berikut:
Formula <- formula(paste("y ~ ",
paste(PredictorVariables, collapse=" + ")))
lm(Formula, Data)
- yang
collapse
menyisipkan argumen +
antara variabel prediktor
formula
mengubah string menjadi objek formula kelas yang cocok untuk lm
fungsi tersebut.
Lebih umum, saya menggunakan fungsi berikut secara teratur ketika saya ingin menyediakan variabel prediktor sebagai vektor nama variabel.
regression <- function(dv, ivs, data) {
# run a linear model with text arguments for dv and ivs
iv_string <- paste(ivs, collapse=" + ")
regression_formula <- as.formula(paste(dv, iv_string, sep=" ~ "))
lm(regression_formula, data)
}
Misalnya,
regression("y", PredictorVariables, Data)