假设我想将一组 X 拟合到 Y。例如:
fit <- glm(Y~x1+x2+x3,data=mydata,family=binomial())
我不想使用变量名 X1、X2、X3,而是使用 mydata 中位置/列 20 到 50 中的 31 个特征来拟合 Y。我以前见过这样做,但找不到示例。谁能提供一个例子...谢谢。
假设我想将一组 X 拟合到 Y。例如:
fit <- glm(Y~x1+x2+x3,data=mydata,family=binomial())
我不想使用变量名 X1、X2、X3,而是使用 mydata 中位置/列 20 到 50 中的 31 个特征来拟合 Y。我以前见过这样做,但找不到示例。谁能提供一个例子...谢谢。
由于不同的原因,我对当前的任何一个答案都不感到兴奋。
lm( Y ~ . , data= mydata[ , c( grep("^Y$", names(mydata) ), 20:50) ] )
(数字列索引使用 grep 来查找 Y 的正确位置。这意味着不会因为 Y 与“mydata”分开而引起任何混淆。)
y <- 1:100
mydata <- as.data.frame(matrix(rnorm(10000),nrow=100))
lm(y~.,data=mydata) # all the variables
lm(y~.,data=mydata[,20:30]) # just some of them
这可能不是最优雅的方法,但这是我使用 lm() 的方法。当然,您只需更改公式字符串以匹配您对 glm() 的使用。
myData <- data.frame(Y=rnorm(100),x1=rnorm(100),x2=rnorm(100))
theNames <- names(myData)[2:3]
theFormula <- paste0("lm(Y ~ ",paste(theNames,collapse=" + "),", data=myData)")
theModel <- eval(parse(text=theFormula))