【问题标题】:R: Remove a row from all data.frames in global environment [closed]R:从全球环境中的所有data.frames中删除一行[关闭]
【发布时间】:2016-08-23 17:17:16
【问题描述】:

我的全球环境中有 200 多个 data.frames。我想从每个 data.frame 中删除第一行,但我不确定如何。

如果需要更多信息,我们将不胜感激。

【问题讨论】:

  • 你是怎么搞得这么一团糟的?将这些 data.frames 保存在列表中可能会更好,而不是像那样污染您的全球环境。他们会更容易以这种方式工作。
  • 请参阅How to make a list of data frames 以跟进 MrFlick 的建议。

标签: r dataframe


【解决方案1】:

这将列出您环境中的所有数据框,删除每个数据框的第一行,并将它们组织成一个数据框列表。一般来说,最好将它们列在一个列表中,这样您就可以更轻松地在它们之间使用apply 函数并访问它们。

df <- lapply(ls(), function(x) get(x)[-1,])

更新:检查对象是否实际上是数据帧并且仅适用于那些的好主意。首先我们创建一个逻辑向量列出数据帧,然后将它们组合成一个列表并删除每个数据帧的第一行。

dfs = sapply(ls(), is.data.frame) 
lapply(mget(names(dfs)[dfs]), "[", -1, , drop = FALSE)

感谢 cmets 发现我的错误并提供更有效的解决方案

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-15
  • 1970-01-01
  • 2020-06-15
  • 2017-08-01
  • 2016-09-15
  • 2016-05-25
  • 2019-12-07
相关资源
最近更新 更多