此
mult_six <- function(x) {
y <- x * 6
}
mult_six(7)
不返回任何内容(按预期方式返回),并且y
未全局分配(也正如预期的那样,因为分配发生在函数的范围内,而不是在父环境中-因此y
返回Error: object 'y' not found
-完全正常)
但是
sapply(c(1,2,3), mult_six)
返回
[1] 6 12 18
((lapply()
返回列表的等效项)。
我不明白为什么lapply
/ sapply
的行为与分别调用每个元素上的函数有什么不同?
众所周知,函数默认返回函数的最后一行,但是,由于在此函数中分配了一个值,因此不会显式显示结果,但是如果您使用print
,则可以看到它。
print(mult_six(7))
#[1] 42
我们可以用()
换行
(mult_six(7))
#[1] 42
不需要分配给y<-
。会是
mult_six <- function(x) {
x * 6
}