gpt4 book ai didi

r - 将省略号参数传递给映射函数 purrr 包,R

转载 作者:行者123 更新时间:2023-12-01 12:15:51 26 4
gpt4 key购买 nike

我想在 purrr 包的 map 函数中使用省略号参数。这是一个玩具示例:

f1<-function(x,a=NA,b=NA,prs=seq(0, 1, 0.25),SW=T){
if(SW){
res<-data.frame(name1=a,name2=b,t(quantile(x, prs, na.rm = T)), mean=mean(x, na.rm = T), sd=sd(x, na.rm = T),
NAs=length(x[is.na(x)]),n=length(x[!is.na(x)]),SWp=shapiro.test(x)$p.value,stringsAsFactors =F)
}else
{
res<-data.frame(name1=a,name2=b,t(quantile(x, prs, na.rm = T)), mean=mean(x, na.rm = T), sd=sd(x, na.rm = T),
NAs=length(x[is.na(x)]),n=length(x[!is.na(x)]),stringsAsFactors =F)
}
return(res)
}

f1(c(NA,rnorm(25),NA),SW=F)
f1(c(NA,rnorm(25),NA))

现在我想在另一个函数 f2 中使用 f1:
f2<-function(df,...){
res<-map_df(colnames(df),~f1(df[,.],a=.,...))
return(res)
}

其中 ... 主要用于操作 f1 函数中的 SW 和 a 或 b 参数。但是 f2 没有做我想要的,可以在这里看到
f2(iris[,-5])
f2(iris[,-5],SW=F)

我感谢任何有关如何使用 addecuatelly ... 内 map 的指南

最佳答案

您只需要通过 map_df() 传递省略号也打电话。否则进不去内部f1()称呼。

f2 <- function(df, ...){
res <- map_df(colnames(df), ~f1(df[,.], a=., ...), ...)
return(res)
}

关于r - 将省略号参数传递给映射函数 purrr 包,R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48215325/

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