r语言 - 在sapply中是否只执行最后一个命令



我写了以下代码:

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

或者,如果输出类型不同,则放在listdata.frame

最新更新