我想用列表中的不同變量進行一系列分析。這些變量位於相同的數據集中。如何在循環(或lapply)的操作中使用變量列表?
樣本數據幀如下
df <- data.frame(x1=runif(10),
x2=runif(10),
x3=runif(10),
x4=runif(10),
y=runif(10))
# I would like to use variables from this list
xlist <- c("x1","x2","x3")
summary<-NA
我想到的是用for循環或lapply,但似乎這兩種方法調用列表中的變量時,也有同樣問題。 問題是我在循環中使用「var」來表示x1,x2或x3,但像「lm」這樣的函數需要參數「data」,並且該函數將var識別爲要調用的變量,而不是x1,x2或x3。
任何想法如何避免這種情況?
# using for loop
for (var in xlist) {
model <- lm(y~var,data=df)
temp <- data.frame(coef=model$coefficients[2])
summary<- rbind(summary,temp)
}
# using lapply
func <- function(var){
model <- lm(y~var,data=df)
temp <- data.frame(coef=model$coefficients[2])
}
result <- lapply(xlist, func)
我只是將一行更改爲'model < - lm(y〜。,data = df [,c('y',var)])' – rawr