使用每个小标题中的名称从小标题列表中选择变量

Crimc

我有一个小标题或数据框的列表(每个小标题或列表中都有一个名称),我想要:(1)long.col在每个小标题中用不同名称的变量创建一个具有相同名称的新列(2)通过匹配另一个小词,并在每个小词中最后用关键字链接小词名称和列名来完成此操作;(3)为long.col每个小标题中具有相同名称的所有新创建的列绑定行,并标识它们来自的原始小标题。

我想最好使用tidyverse函数来做到这一点。这是两个示例:a)小标题列表;b)关键小标题,标识小标题的名称和变量

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)

我需要使用多个列在更长的列表中执行此操作,因此对每个小标题中的每个列分别执行操作是不可行的。

马库斯

你可以map2在这里使用

library(purrr)
library(tibble)
out <- map2_df(.x = list.df,
               .y = names(list.df),
               .f = ~ {
                 temp <- key[["vars"]][key[['data']] == .y]
                 tibble(data = .y, long.col = .x[[temp]])
                 })

检查输出

identical(final.df, out)
#[1] TRUE

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据小标题中的特定值过滤小标题列表

使用列表元素的名称将列表元素放入它们自己的小标题中

在小标题中枚举分组变量

在R中使用count函数时,如何仅从小标题中提取int值?

合并小标题中的行

将函数应用于小标题中的每个值(并返回小标题)?

R:如何在小标题中访问小标题?

将小标题中的日期更改为分类变量

在小标题中查找所选变量的重复观察结果

在小标题中取消嵌套不同深度的列表

用列表替换小标题中的NA值

小标题内的小标题

如何使用列名称读取或为小标题中的单个单元格分配值?

使用{tibble}中的框架后,将小标题中的列表列转换为多列

如何在小标题中为列表列使用`mutate_at`?

如何在R中的小标题内的列表中的所有行中选择特定元素

如何使用函数来分析所有小标题中的所有行,将我的数据放在小标题列表中?

在整个小标题中替换值

惰性评估问题-小标题中的功能

如何删除小标题中的偏移行?

删除小标题中的偏移行

排除小标题中的常见行

无法从小标题列表中获取所有日期的列表

使用列表名称作为一列中的值以小标题形式列出

单击按钮时更新小标题和下拉列表;在下拉列表中进行选择时更新小标题

bind_rows到每个小标题

如果没有超过一定数量的值,则从小标题中过滤/删除行

用较小的小标题细分小标题

使用purrr重命名小标题列表中的不同列