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

如何在运行函数时获取列表中命名DataFrame的名称?

解决方案

方法1:使用imap()函数(推荐)

purrr包的imap()是为命名列表量身打造的工具,它会自动将列表元素和对应的名称一起传递给自定义函数。修改代码如下:

library(tidyverse)

df_list<-list()
df_list$iris1<-iris[1:50,]
df_list$iris2<-iris[51:100,]
df_list$iris3<-iris[101:150,]

# 给函数添加name参数,接收DataFrame的名称
df_name<-function(df, name){
    df%>%
    mutate(df_name = name)
}

# 用imap替代map,自动传递元素与名称
imap(df_list, df_name)

方法2:使用map2()配合列表名称

如果你更习惯用map2(),可以手动把列表的名称向量作为第二个输入参数传入:

library(tidyverse)

df_list<-list()
df_list$iris1<-iris[1:50,]
df_list$iris2<-iris[51:100,]
df_list$iris3<-iris[101:150,]

df_name<-function(df, name){
    df%>%
    mutate(df_name = name)
}

# map2接收两个等长对象:df_list和它的名称向量
map2(df_list, names(df_list), df_name)

效果验证

执行后,每个DataFrame都会新增一列df_name,值为该DataFrame在列表中的命名(如iris1、iris2、iris3)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:05:11