You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中根据所用函数命名列表元素

解决方法

问题出在你用c()存储函数时,R会生成一个无名称的函数向量,导致sapply无法识别原函数名,deparse(substitute(fun))只能拿到循环占位符X[[i]]。以下两种方法可以解决:

方法一:使用命名列表存储函数(推荐)

直接用命名列表保存函数,sapply会自动保留列表的名称作为结果的元素名:

# 用命名列表替代c(),给每个函数指定对应名称
funs <- list(mean = mean, median = median, min = min, max = max, quantile = quantile)
some_vals <- rnorm(14)

# 直接调用sapply,结果自动带函数名
stats <- sapply(funs, function(fun) fun(some_vals))

方法二:给函数向量手动添加名称

如果坚持用c()存储函数,可以手动为向量添加名称属性:

funs <- c(mean, median, min, max, quantile)
# 手动为函数向量设置名称
names(funs) <- c("mean", "median", "min", "max", "quantile")
some_vals <- rnorm(14)

stats <- sapply(funs, function(fun) fun(some_vals))

两种方法最终输出的stats都会以对应函数名作为元素名称,比如mean、median等,解决你遇到的命名问题。

内容的提问来源于stack exchange,提问作者Corbjn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:54:56