我创建了以下lapply命令,用于从依赖变量列表中计算多个回归模型。
lapply(1:length(regressionVars$motivation_on), function(x) {
print("printing regression model for DV: " %p% regressionVars$motivation_on[x])
OLS_ONM_motivation_X <- lm(regressionVars$motivation_on[x] %p% " ~ " %p% "age + gender" %p% " + " %p% paste(c(regressionVars$pvq), sep = "", collapse = " + "), comb)
summary(OLS_ONM_motivation_X)
})呈现R文件时得到的输出如下所示:

然而,我真正想要的是这个序列:
我也尝试了一个for循环,但它只打印了21次“标题”,不计算线性模型.
for (x in 1:length(regressionVars$motivation_on)) {
print("printing regression model for DV: " %p% regressionVars$motivation_on[x])
OLS_ONM_motivation_X <- lm(regressionVars$motivation_on[x] %p% " ~ " %p% "age + gender" %p% " + " %p% paste(c(regressionVars$pvq), sep = "", collapse = " + "), comb)
summary(OLS_ONM_motivation_X)
}我做错了什么?我怎样才能实现我想要的呢?有人能为这篇文章找出更好的头衔吗?
发布于 2017-04-28 07:04:26
如果最后一行计算某个对象,则r函数隐式返回。因此,摘要正在从函数中返回,而不是打印出来。我相信你能做到
print(summary(x))相反,要获得所需的结果,否则执行打印,并将返回(TRUE)添加到下一行或什么东西,以避免R的自动返回捕获。
试一试
invisible(lapply(1:length(regressionVars$motivation_on), function(x) {
print("printing regression model for DV: " %p% regressionVars$motivation_on[x])
OLS_ONM_motivation_X <- lm(regressionVars$motivation_on[x] %p% " ~ " %p% "age + gender" %p% " + " %p% paste(c(regressionVars$pvq), sep = "", collapse = " + "), comb)
print(summary(OLS_ONM_motivation_X))
}))https://stackoverflow.com/questions/43673822
复制相似问题