如何在数据帧名称中间基于模式获取数据帧列表?

时间:2019-04-10 08:11:58

标签: r list

我有许多名称相似的数据框,我想将它们放入列表中。

数据帧具有诸如“ df1b”,“ df10b”,“ df273b”等名称。数据框名称的中间部分始终由数字组成。

我有一个局部解决方案,但这是有缺陷的。我希望列表包含所有以“ df”开头并以“ b”结尾的数据帧。我已经尝试过这种解决方案。

list <- mget(ls(pattern = "df.b"))

但是,该解决方案仅适用于在“ df”和“ b”之间具有一位数字的名称。如何修改代码以使其适用于“ df”和“ b”之间的任意数量的数字字符?

3 个答案:

答案 0 :(得分:5)

您可以尝试

list_df <- mget(ls(pattern = "^df\\d+b$"))

这将使所有以df开头并以b结尾的对象。

答案 1 :(得分:2)

尝试一下:

list <- mget(ls(pattern = "^df[0-9]+b$"))

请注意,pattern包含一个正则表达式:

  • ^df意味着您需要以df开头的元素。
  • [0-9]+表示至少应有一个数字(+表示“一个或多个”)
  • b$意味着它应该以{{1​​}}结尾。

答案 2 :(得分:2)

尝试:

list <- mget(ls(pattern = "df.*b"))