【发布时间】:2021-01-05 00:27:10
【问题描述】:
我最近写了for(i in 1:100){foo(i,bar)} 作为脚本的最后一行。在这种情况下,foo 的最后一行是对print 的调用,我绝对不想看到foo 的返回值。我只想要印刷品。这个 for 循环有效,但是在 R 中使用这样的循环感觉不习惯。有没有更惯用的方法来实现这一点? foo 必须在被调用之前单独获取每个 i in 1:100,因此 foo(1:100,bar) 将不起作用。
sapply(1:100,function(x) foo(x,bar)) 似乎更惯用,但它给了我foo 的返回值及其打印。我曾考虑使用do.call,但不得不使用as.list(1:100) 让我感到厌恶。我的替代方案是什么?
最小示例:
foo<-function(i,bar)
{
print(paste0("alice",i,bar,collapse = ""))
}
for(i in 1:100){foo(i,"should've used cat")}
sapply(1:100,function(x) foo(x,"ugly output"))```
【问题讨论】: