【问题标题】:How to add an id colum to a list of data.frames [duplicate]如何将 id 列添加到数据框列表中[重复]
【发布时间】:2021-06-26 22:48:41
【问题描述】:

我正在 rbind将 data.frames 列表 (k) 转换为单个 data.frame (current_output)。

但我想知道如何将 id 列添加到我的结果 data.frame 中,以便在 BASE R 中获得我的 desred_output

k = list(A = data.frame(d = 1, n = 2), B = data.frame(d = 1:2, n = 2:3))

current_output = do.call(rbind, k)
#    d n
#A   1 2
#B.1 1 2
#B.2 2 3

desired_ouput1 = data.frame(id = c(1,2,2), d = c(1,1:2), n = c(2,2:3))
#  id d n
#1  1 1 2
#2  2 1 2
#3  2 2 3

desired_ouput2 = data.frame(id = c(A,B,B), d = c(1,1:2), n = c(2,2:3))
#  id d n
#1  A 1 2
#2  B 1 2
#3  B 2 3

【问题讨论】:

标签: r list dataframe loops lapply


【解决方案1】:

如果您想拥有基本的 R 解决方案,下面的代码可能会对您有所帮助

do.call(
  rbind,
  c(Map(cbind, id = names(k), k),
    make.row.names = FALSE
  )
)

给了

  id d n
1  A 1 2
2  B 1 2
3  B 2 3

或者你可以这样做

cbind(
  id = rep(
    names(k),
    sapply(k, nrow)
  ),
  do.call(rbind, k)
)

给了

    id d n
A    A 1 2
B.1  B 1 2
B.2  B 2 3

【讨论】:

    猜你喜欢
    • 2017-07-25
    • 2018-08-20
    • 1970-01-01
    • 2022-01-05
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    相关资源
    最近更新 更多