sapply 中的函数是否只执行最后一个命令?
does function in sapply execute only the last one command?
我写了下面的代码:
sapply(1:2, function(x)
sapply(2:3, function(y) {
x+y
x*y }
))
希望得到
3(1+2), 2(1*2), 4(1+3), 3(1*3)
4(2+2), 4(2*2), 5(2+3), 6(2*3)
但 R 仅 returns 第二个命令的结果 (x*y)
[,1] [,2]
[1,] 2 4
[2,] 3 6
然后我尝试了下面的代码:
sapply(4:5, function(x) {
x+1
x*2 }
)
和Rreturns
[1] 8 10
sapply中的函数是否只执行最后一条命令?
我如何重写代码以获得我需要的东西?
我们可以用 c
进行串联
sapply(1:2, function(x)
sapply(2:3, function(y) {
c(x+y,
x*y) }
))
# [,1] [,2]
#[1,] 3 4
#[2,] 2 4
#[3,] 4 5
#[4,] 3 6
或者如果输出类型不同,则放在 list
或 data.frame
中
我写了下面的代码:
sapply(1:2, function(x)
sapply(2:3, function(y) {
x+y
x*y }
))
希望得到
3(1+2), 2(1*2), 4(1+3), 3(1*3)
4(2+2), 4(2*2), 5(2+3), 6(2*3)
但 R 仅 returns 第二个命令的结果 (x*y)
[,1] [,2]
[1,] 2 4
[2,] 3 6
然后我尝试了下面的代码:
sapply(4:5, function(x) {
x+1
x*2 }
)
和Rreturns
[1] 8 10
sapply中的函数是否只执行最后一条命令?
我如何重写代码以获得我需要的东西?
我们可以用 c
sapply(1:2, function(x)
sapply(2:3, function(y) {
c(x+y,
x*y) }
))
# [,1] [,2]
#[1,] 3 4
#[2,] 2 4
#[3,] 4 5
#[4,] 3 6
或者如果输出类型不同,则放在 list
或 data.frame