3 回答

TA貢獻1841條經(jīng)驗 獲得超3個贊
參見?as.formula,例如:
factors <- c("factor1", "factor2")
as.formula(paste("y~", paste(factors, collapse="+")))
# y ~ factor1 + factor2
其中factors是一個字符向量,其中包含要在模型中使用的因子的名稱。這可以粘貼到lm模型中,例如:
set.seed(0)
y <- rnorm(100)
factor1 <- rep(1:2, each=50)
factor2 <- rep(3:4, 50)
lm(as.formula(paste("y~", paste(factors, collapse="+"))))
# Call:
# lm(formula = as.formula(paste("y~", paste(factors, collapse = "+"))))
# Coefficients:
# (Intercept) factor1 factor2
# 0.542471 -0.002525 -0.147433

TA貢獻1821條經(jīng)驗 獲得超5個贊
一個經(jīng)常被遺忘的功能是reformulate
。來自?reformulate
:
reformulate
從字符向量創(chuàng)建公式。
一個簡單的例子:
listoffactors <- c("factor1","factor2")reformulate(termlabels = listoffactors, response = 'y')
將產(chǎn)生這個公式:
y ~ factor1 + factor2
雖然沒有明確記錄,但您也可以添加交互術(shù)語:
listofintfactors <- c("(factor3","factor4)^2")reformulate(termlabels = c(listoffactors, listofintfactors), response = 'y')
會產(chǎn)生:
y ~ factor1 + factor2 + (factor3 + factor4)^2

TA貢獻1856條經(jīng)驗 獲得超5個贊
另一種選擇可能是在公式中使用矩陣:
Y = rnorm(10)foo = matrix(rnorm(100),10,10)factors=c(1,5,8)lm(Y ~ foo[,factors])
- 3 回答
- 0 關(guān)注
- 562 瀏覽
添加回答
舉報