【发布时间】:2018-11-25 04:49:47
【问题描述】:
我有一个小标题或数据框的列表(每个列表中都有一个名称),我想:(1)在每个小标题中从具有不同名称的变量创建具有相同名称long.col 的新列; (2) 通过从另一个 tibble 与每个 tibble 中连接 tibble 名称和列名称的键进行匹配,最后; (3) 在每个 tibble 中为所有新创建的具有相同名称 long.col 的列绑定行,并标识它们来自的原始 tibble。
我想最好使用 tidyverse 函数来做到这一点。以下是两者的示例: a) 小标题列表; b) 关键 tibble 标识 tibble 名称和要在每个中选择的变量
df1 <- tibble(v1 = c(rep("A", 5), rep("B", 5)),
v2 = 1:10)
df2 <- tibble(v1 = c(rep("C", 6), rep("D", 6)),
v3 = 11:22)
df3 <- tibble(v1 = c(rep("E", 4), rep("F", 4)),
v4 = 23:30)
list.df <- list(df1, df2, df3)
names(list.df) <- c("data1", "data2", "data3")
key <- tibble(data = c("data1", "data2", "data3"),
vars = c("v2", "v3", "v4"))
最终输出应如下所示:
final.df <- tibble(data = c(rep("data1", 10), rep("data2", 12), rep("data3", 8)),
long.col = 1:30)
我需要使用多个列在更长的列表中执行此操作,因此为每个 tibble 中的每个列单独执行此操作是不可行的。
【问题讨论】:
标签: r list select data-binding tibble