R mapply中打印的奇怪行为
当R mapply中打印的奇怪行为,r,printf,mapply,R,Printf,Mapply,当print()作为副作用包含在mapply()中时,我看到了一些意想不到的行为(无论如何对我来说) 例如,这与预期一样有效(是的,我知道这不是我们添加向量的方式): 这也是: 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" 但这并不是: mapply(
print()
作为副作用包含在mapply()
中时,我看到了一些意想不到的行为(无论如何对我来说)
例如,这与预期一样有效(是的,我知道这不是我们添加向量的方式):
这也是:
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"
但这并不是:
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。print
都会打印其参数并返回其值
p <- print("abc")
# [1] "abc"
p
# [2] "abc"
p在我看来是对的。前三个输出是打印每个mapply
迭代的结果,最后一行是最终输出。cat()
需要cat(…,“\n”)
(显式行结束)
p <- print("abc")
# [1] "abc"
p
# [2] "abc"