【问题标题】:Get the names of data frames from a list从列表中获取数据框的名称
【发布时间】:2017-07-06 18:08:23
【问题描述】:

假设我有以下内容:

df1 <- data.frame()
df2 <- data.frame()
mylist = list(df1, df2)

是否有函数可以返回这两个数据框的名称,即返回'df1' 'df2'?我知道names(mylist) 只会回复我NULL

【问题讨论】:

  • 尝试在列表中命名你的dfs mylist = list(df1 = df1, df2 = df1),然后简单的names(mylist) 会给你名字。
  • 如果我列表中的数据框名称很长,重复名称看起来不太整齐怎么办?
  • 您是如何将这些 dfs 放到您的工作区的?我很少手动创建具有示例中所示名称的数据框列表,通常它们是在 lapply 中读取/处理数据时创建的。
  • This post 非常相似。有关使用 data.frames 列表的提示,请参阅 gregor 的答案。我的答案与下面的 akrun 很接近,并使用正则表达式进行模式匹配。

标签: r list dataframe


【解决方案1】:

如果我们用mget创建list,我们可以得到names

lst1 <- mget(paste0("df", 1:2))
names(lst1)
#[1] "df1" "df2"

【讨论】:

  • 注意:这也适用于许多数据集。假设如果有100个数据对象像'df1','df2',......,'df100',如果时间和精力持续存在,可以做到list(df1 = df1, df2 = df2, ....df100 = df100)
【解决方案2】:
mylist <- list()
mylist[["df1"]] <-df1
mylist[["df2"]] <-df2
names(mylist)

mylist[[deparse(substitute(df1))]] <-df1

【讨论】:

  • 解释为什么这对每个人都有帮助。
  • Shen 请添加更多内容来解释这是如何工作的 - 目前您的帖子正因此而被标记。
猜你喜欢
  • 2021-09-14
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 2019-08-11
  • 2020-04-11
  • 2020-09-06
相关资源
最近更新 更多