有没有一种方法可以根据列表中项目的名称在R中合并数据框和列表?

要合并以下内容的示例:

还有这个:

转换成如下所示的数据帧:

数据框架示例

data = structure(list(Col.A = c("x", "x", "x", "x", "x", "x", "x", "x", 
"x", "x", "x", "x", "x", "x", "x"), Col.B = c("x", "x", "x", 
"x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x"), 
    Group = c("Group1", "Group1", "Group1", "Group1", "Group1", 
    "Group2", "Group2", "Group2", "Group2", "Group2", "Group3", 
    "Group3", "Group3", "Group3", "Group3"), Variable = c("V1", 
    "V2", "V3", "V4", "V5", "V1", "V2", "V3", "V4", "V5", "V1", 
    "V2", "V3", "V4", "V5")), class = "data.frame", row.names = c(NA, 
-15L))

示例列表:

List = list(GROUP1 = list(V1 = 0.857138, V2 = 1, V3 = 0.5, 
                          V4 = "not limiting", V5 = 0.1), 
            Group2 = list(V1 = 0.65, V2 = 1, V3 = 1, 
                          V4 = 0.6, V5 = 0.25), 
            Group3 = list(V1 = 0.65, V2 = 0.75, V3 = 0.3, 
                          V4 = 1, V5 = 1))

推荐答案

一个tidyVerse解决方案:

library(dplyr)
library(tidyr)
library(tibble)

names(List) <- stringr::str_to_sentence(names(List))

List |> 
  unlist() |> 
  enframe() |> 
  separate_wider_delim(cols = name, names = c("Group", "Variable"), delim = ".") |> 
  right_join(data)

   Group  Variable value        Col.A Col.B
   <chr>  <chr>    <chr>        <chr> <chr>
 1 Group1 V1       0.857138     x     x    
 2 Group1 V2       1            x     x    
 3 Group1 V3       0.5          x     x    
 4 Group1 V4       not limiting x     x    
 5 Group1 V5       0.1          x     x    
 6 Group2 V1       0.65         x     x    
 7 Group2 V2       1            x     x    
 8 Group2 V3       1            x     x    
 9 Group2 V4       0.6          x     x    
10 Group2 V5       0.25         x     x    
11 Group3 V1       0.65         x     x    
12 Group3 V2       0.75         x     x    
13 Group3 V3       0.3          x     x    
14 Group3 V4       1            x     x    
15 Group3 V5       1            x     x    

R相关问答推荐

卸载安装了BRM的模型发出的警告

使用rlang s arg_match判断函数输入列表

如何在四进制仪表板值框中显示值(使用shiny 的服务器计算)

如何根据组大小应用条件过滤?

为什么观察不会被无功值变化触发?

ggplot的轴标签保存在officer中时被剪切

在特定Quarto(reveal.js)幻灯片上隐藏徽标

如何写一个R函数来旋转最后n分钟?

如何将移除事件分配给动态创建的按钮?

提取具有连续零值的行,如果它们前面有R中的有效值

即使硬币没有被抛出,也要保持对其的跟踪

在ggplot2中更改小提琴情节的顺序

如何通过判断数据框的一列来压缩另一列?

将多个变量组合成宽格式

在R中使用列表(作为tibble列)进行向量化?

将多个列合并为一个列的有效方法是什么?

删除在R中的write.table()函数期间创建的附加行

如何为混合模型输出绘制不同的线型?

数据集上的R循环和存储模型系数

R中的交叉表