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]]))