首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mapply中打印的奇怪行为

mapply中打印的奇怪行为
EN

Stack Overflow用户
提问于 2017-08-18 07:14:45
回答 1查看 36关注 0票数 2

当在mapply()中封装的函数中包含print()作为副作用时,我看到了一些意想不到的行为(至少对我而言)。

例如,这按预期工作(是的,我知道这不是我们添加向量的方式):

代码语言:javascript
复制
mapply(function(i,j) i+j, i=1:3, j=4:6) # returns [1] 5 7 9

也是这样做的:

代码语言:javascript
复制
mapply(function(i,j) paste(i, "plus", j, "equals", i+j), i=1:3, j=4:6) 
# returns [1] "1 plus 4 equals 5" "2 plus 5 equals 7" "3 plus 6 equals 9"

但这不是:

代码语言:javascript
复制
mapply(function(i,j) print(paste(i, "plus", j, "equals", i+j)), i=1:3, j=4:6)
# returns:
# [1] "1 plus 4 equals 5"
# [1] "2 plus 5 equals 7"
# [1] "3 plus 6 equals 9"
# [1] "1 plus 4 equals 5" "2 plus 5 equals 7" "3 plus 6 equals 9"

这里发生了什么事?我已经有一段时间没有使用mapply()了,所以这可能是不需要动脑筋的…我使用的是R版本3.4.0。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-18 07:17:01

print打印它的参数并返回它的值。

代码语言:javascript
复制
p <- print("abc")
# [1] "abc"
p
# [2] "abc"

所以每个元素都被打印出来,然后向量返回(并打印)。例如,尝试使用invisible(mapply(...))m <- mapply(...)进行比较。

半成品cat()返回NULL ...

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45746234

复制
相关文章

相似问题

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