如何批量创建包含命名规则一致的DataFrame的列表?
批量将命名为df1、df2…dfn的数据框合并为列表
方法一:针对已存在的单独命名数据框
如果已经有大量df1、df2…dfn格式的数据框,可通过以下步骤批量生成列表:
- 匹配所有符合命名规则的对象名:用
ls()结合正则表达式^df\\d+$,筛选出所有以df开头、后续为数字的对象。 - 批量获取对象并生成列表:用
mget()将筛选出的对象名对应的变量提取为列表。
代码示例:
# 筛选符合命名规则的对象名称 df_names <- ls(pattern = "^df\\d+$") # 生成包含所有目标数据框的列表 L <- mget(df_names)
如果需要列表元素按数字顺序排列(默认ls()返回的是字符排序,会出现df10排在df2前的情况),可添加排序逻辑:
# 按数字序号排序对象名称 df_names <- sort(ls(pattern = "^df\\d+$"), key = function(x) as.integer(sub("df", "", x))) L <- mget(df_names)
方法二:从创建阶段直接存入列表(更高效)
如果还未创建这些数据框,建议直接在创建时就存入列表,避免单独命名的繁琐:
# 示例:循环创建1000个数据框并直接存入列表 L <- list() for(i in 1:1000){ # 自定义数据框内容,这里以生成连续整数列为例 L[[i]] <- data.frame(x = i:(i+9)) } # 可选:给列表元素添加df1、df2...的命名 names(L) <- paste0("df", 1:1000)
内容的提问来源于stack exchange,提问作者An116
相关产品推荐
相关产品推荐

