Ayrıca formula
ve paste
işlevlerinin bir birleşimini kullanabilirsiniz .
Kurulum verileri : Let biz belirleyicisi değişkenleri içeren bir data.frame var hayal var x1
etmek x100
ve bizim bağımlı değişken y
, aynı zamanda bir sıkıntı değişken olduğunu asdfasdf
. Ayrıca, yordayıcı değişkenleri, data.frame dosyasında bitişik olmayacak şekilde düzenlenir.
Data <- data.frame(matrix(rnorm(102 * 200), ncol=102))
names(Data) <- c(paste("x", 1:50, sep=""),
"asdfasdf", "y", paste("x", 51:100, sep=""))
Ayrıca, tahmin değişkenlerinin adlarını içeren bir dize bulunduğunu hayal edin. Bu durumda, bu paste
işlev kullanılarak kolayca oluşturulabilir , ancak diğer durumlarda grep
veya bu dizeyi almak için başka bir yaklaşım kullanılabilir.
PredictorVariables <- paste("x", 1:100, sep="")
Yaklaşım uygulayın : Daha sonra aşağıdaki gibi bir formül oluşturabiliriz:
Formula <- formula(paste("y ~ ",
paste(PredictorVariables, collapse=" + ")))
lm(Formula, Data)
collapse
bağımsız değişken uçlar +
belirleyici değişkenler arasında
formula
dizeyi lm
işlev için uygun bir sınıf formül nesnesine dönüştürür .
Daha genel olarak, bir yordayıcı değişkenlerini değişken isimlerinin vektörü olarak vermek istediğimde, aşağıdaki işlevi oldukça düzenli kullanıyorum.
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)
}
Örneğin,
regression("y", PredictorVariables, Data)