我写了以下代码:
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只返回第二个命令的结果(x * y)
[,1] [,2]
[1,] 2 4
[2,] 3 6
然后我尝试了以下代码:
sapply(4:5, function(x) {
x+1
x*2 }
)
和R返回
[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