假设Z
是要素名称的向量。
如何在以下Rscript中获取summary命令才能实际打印?
for (var in Z)
{
#cat(i)
form = paste('crim ~', var)
lm.fit=lm(form, data=Boston)
summary(lm.fit)
}
如果我在R提示符下键入summary(lm.fit)
,它可以工作,但是当我获取包含此循环的Rscript时,我没有输出。我已经尝试过解决方案How can I run an 'R' script without suppressing output?,但它不会导致打印摘要。
答案 0 :(得分:1)
summary()
方法被调用, "summary.foo"
应该返回类summary.foo()
的对象。然后,该类的print()
方法print.summary.foo()
应该打印summary.foo()
返回的对象。
在for ()
循环中关闭自动打印(以及其他一些情况。您需要显式调用print()
。当您在提示时调用summary(bar)
时,您实际上正在{ {1}}。在print(summary(bar))
次循环中添加了print()
调用。
因此,写
for ()
在循环中,你会看到输出。
答案 1 :(得分:1)
您可以使用for loop
摆脱lapply
。
z<-as.list(c("disp","cyl"))
nn<-lapply(z,function(x) summary(lm(as.formula(paste("mpg",x,sep="~")),data=mtcars)))
print(nn) # or show(nn)
如果你想坚持for loop
这就是解决方案:
for (i in z){
k[[i]]<-summary(lm(as.formula(paste("mpg",z[i],sep="~")),data=mtcars))
print(k[[i]])
}