【问题标题】:Extracting multiple dataframes from a list of dataframes in R从R中的数据框列表中提取多个数据框
【发布时间】:2021-11-27 03:12:26
【问题描述】:

我有一个数据框列表,结构如下。

我需要从所述列表中提取可变数量的元素,并在完成后使用标识符将它们连接在一起。

使用[[]] 方法进行提取有效,但我似乎无法获取范围。

这行得通:

x <- pf_metrics[[[1]]]

它以原始结构提取整个第一个数据帧。这是我想要做的,但跨越可变长度的数据框列表。

使用类似...的语法

x <- pf_metrics[c[1:length(pf_metrics)]]

x <- pf_metrics[[c(1,2)]]

似乎也不起作用。

谢谢!

【问题讨论】:

  • 你想让它们成为一个数据框吗?
  • 如果你想要一个子列表,你可以使用[]。如果你想要一个元素,你使用[[]] 因此,x &lt;- pf_metrics[c(1,2)] 会给你一个子列表。
  • pf_metrics[[1]][,c(1,2)] 怎么样?
  • 想出了与下面类似的解决方案,以上方法都不起作用。 do.call(what = rbind, args = pf_metrics)

标签: r dataframe indexing extract


【解决方案1】:

使用data.table

library(data.table)
num <- c(1, 2)
result <- rbindlist(pf_metrics[num], idcol = 'id')

【讨论】:

    【解决方案2】:

    试试下面的 -

    num <- c(1, 2)
    result <- dplyr::bind_rows(pf_metrics[num], .id = 'id')
    

    其中num 是您要选择的列表元素,它还将包括一个id 列,该列将是每个列表的唯一标识符。

    【讨论】:

    • num 是可变的,将是数据帧的可变 nuber,所以我认为这行不通。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2016-12-10
    相关资源
    最近更新 更多