[英]Nested lapply with substitute in R
我創建了使用不同的變量多次運行lm命令的代碼:
DVs <- c('mpg', 'wt')
lapply(DVs, function(x)
lm(substitute(scale(DV) ~ scale(disp)+scale(qsec), list(DV = as.name(x))), data=mtcars))
但是,我希望能夠創建一個嵌套循環,以遍歷另一個變量。 我曾經嘗試過的代碼是:
DVs <- c('mpg', 'wt')
IVs <- c('disp', 'hp')
lapply(DVs, function(x) lapply(IVs, function(y)
lm(substitute(substitute(scale(DV) ~ scale(IV)+scale(qsec), list(DV = as.name(x)), list(IV = as.name(y)), data=mtcars)))))
但是,這會導致錯誤:
替代項錯誤(scale(DV)〜scale(IV)+ scale(qsec),list(DV = as.name(x)),:未使用的參數(list(IV = as.name(X [[i]]]) ),數據= mtcars)
如何使此嵌套循環起作用?
感謝您的建議Josh O'Brien! 這工作:
DVs <- c('mpg', 'wt')
IVs <- c('disp', 'hp')
lapply(DVs, function(x) lapply(IVs, function(y) {lm(reformulate(response=x, termlabels=y), data=mtcars)}))
我無法弄清楚如何在調用中縮放數據,但是我只能縮放整個數據框:
mtcarsSC <- as.data.frame(scale(mtcars))
DVs <- c('mpg', 'wt')
IVs <- c('disp', 'hp')
lapply(DVs, function(x) lapply(IVs, function(y) {lm(reformulate(response=x, termlabels=y), data=mtcarsSC)}))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.