我写了以下代码:
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中的函数是仅执行最后一个命令吗?
我怎样才能重写代码以获得我需要的东西?
答案 0 :(得分:0)
我们可以与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