我写了以下代码:
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