R mapply函数未按预期工作

R mapply函数未按预期工作,r,mapply,R,Mapply,我正在写一个大函数。我想使用mapply函数在列表上运行函数 我有这个: x <- list(1,3, 4, 5) y <- list(5,6,7,3) res <- mapply(x , y , FUN = function(x, y) double(x + y)) [[1]] [1] 0 0 0 0 0 0 [[2]] [1] 0 0 0 0 0 0 0 0 0 [[3]] [1] 0 0 0 0 0 0 0 0 0 0 0 [[4]] [1] 0 0 0

我正在写一个大函数。我想使用
mapply
函数在列表上运行函数

我有这个:

 x <- list(1,3, 4, 5)
 y <- list(5,6,7,3)
 res <- mapply(x  , y , FUN = function(x, y) double(x + y)) 
[[1]]
[1] 0 0 0 0 0 0

[[2]]
[1] 0 0 0 0 0 0 0 0 0

[[3]]
 [1] 0 0 0 0 0 0 0 0 0 0 0

[[4]]
[1] 0 0 0 0 0 0 0 0
因此,我希望答案只针对两个列表,而不是列表中的每个元素


我该怎么做呢?

试试
lappy
函数

my_list(x,y)
m <- length(my_list)
lapply(1:m, function(i) double(x[[i]]+y[[i]]))
my_列表(x,y)

你能解释一下你的输出吗,这两个乘以5的零是从哪里来的?现在,实际输出的第一个元素只是6个零,因为
1+5==6
@missue我试过了,得到了这个:
>startpar[1]10 10
@Axeman谢谢您的评论。我真的和你一样惊讶。我不明白为什么。你为什么期待这些结果?对于
x
y
的第一个值,您将有
双(1+5)
。这是一个长度为6的零向量,而不是两个长度为5的向量。我不明白你怎么能期望长度为5的向量。对于
x
y
的每个元素,你得到的输出是并行映射的。我对你的产出并不感到惊讶,我对你的预期产出感到困惑。
my_list(x,y)
m <- length(my_list)
lapply(1:m, function(i) double(x[[i]]+y[[i]]))