首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >误用计算/输出序列?

误用计算/输出序列?
EN

Stack Overflow用户
提问于 2017-04-28 06:52:50
回答 1查看 76关注 0票数 2

我创建了以下lapply命令,用于从依赖变量列表中计算多个回归模型。

代码语言:javascript
复制
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文件时得到的输出如下所示:

然而,我真正想要的是这个序列:

  • 打印(Headline1)
  • 摘要(Lm1)
  • 打印(Headline2)
  • 摘要(Headline2)
  • 等等..。

我也尝试了一个for循环,但它只打印了21次“标题”,不计算线性模型.

代码语言:javascript
复制
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)
}

我做错了什么?我怎样才能实现我想要的呢?有人能为这篇文章找出更好的头衔吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-28 07:04:26

如果最后一行计算某个对象,则r函数隐式返回。因此,摘要正在从函数中返回,而不是打印出来。我相信你能做到

代码语言:javascript
复制
print(summary(x))

相反,要获得所需的结果,否则执行打印,并将返回(TRUE)添加到下一行或什么东西,以避免R的自动返回捕获。

试一试

代码语言:javascript
复制
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))
}))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43673822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档