gpt4 book ai didi

r - 差异 mapply 和 .mapply

转载 作者:行者123 更新时间:2023-12-04 11:37:52 24 4
gpt4 key购买 nike

我试图找出有关 .mapply 的信息,但没有找到任何好的解释。那么谁能解释一下 mapply 和 .mapply 之间的区别?

例子:
为什么.mapply(cbind,mylist,NULL)有效但无效:

mapply(cbind,mylist,NULL)

?
    mylist=list(list(data.frame(a=3,b=2,c=4),data.frame(d=5,e=6,h=8),data.frame(k=2,e=3,b=5,m=5)),
list(data.frame(a=32,b=22,c=42),data.frame(d=5,e=63,h=82),data.frame(k=2,e=33,b=5,m=5)),
list(data.frame(a=33,b=21,k=41,c=41),data.frame(d=5,e=61,h=80),data.frame(k=22,e=3,b=5,m=5)))

?

最佳答案

来自 ?.mapply :

.mapply is ‘bare-bones’ versions for use in other R packages.



所以 .mapply 只是 mapply 的一个简单(更少的参数)版本在你自己的包中使用。确实 mapply内部电话 .mapply然后做一些结果简化。
mapply <- 
function (FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE, USE.NAMES = TRUE)
{
FUN <- match.fun(FUN)
dots <- list(...)
answer <- .mapply(FUN, dots, MoreArgs)
## ...
## the rest of the function is to simplify the result

}

OP 编辑​​后更新
mapply(cbind,mylist,NULL)

不起作用,因为 NULL这里被视为点参数而不是 MoreArgs范围。确实,您使用 .mapply 重现了相同的错误使用 :
 .mapply(cbind,list(mylist,NULL),NULL)

您可以在 mapply 中避免此错误如果您明确写出参数名称;
 mapply(cbind,mylist,MorgeArgs=NULL)

但由于 mapply 中的线路:
dots <- list(...)

您不会得到与 .mapply 相同的结果

最后,如果你只想 unlist你嵌套列表,最好在这里使用类似的东西:
lapply(mylist,unlist)   # faster and you you get the same output as .mapply

关于r - 差异 mapply 和 .mapply,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28921479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com