我希望在R中使用多个条件("Variable"和"Variable_"列)将收件箱和列表合并在一起.
想要合并包含3个组的列表,每个组包含V1-V5和V1_-V5_:
$GROUP1
$GROUP1$V1
[1] 0.857138
$GROUP1$V2
[1] 1
$GROUP1$V3
[1] 0.5
$GROUP1$V4
[1] "not limiting"
$GROUP1$V5
[1] 0.1
$Group2
$Group2$V1
[1] 0.65
$Group2$V2
[1] 1
$Group2$V3
[1] 1
$Group2$V4
[1] 0.6
$Group2$V5
[1] 0.25
...
还有一个摇篮:
Col.A Col.B Group Variable_ Variable
1 x x Group1 V1_ V1
2 x x Group1 V2_ V2
3 x x Group1 V3_ V3
4 x x Group1 V4_ V4
5 x x Group1 V5_ V5
6 x x Group2 V1_ V1
7 x x Group2 V2_ V2
8 x x Group2 V3_ V3
9 x x Group2 V4_ V4
10 x x Group2 V5_ V5
11 x x Group3 V1_ V1
12 x x Group3 V2_ V2
13 x x Group3 V3_ V3
14 x x Group3 V4_ V4
15 x x Group3 V5_ V5
我希望最终输出看起来像上面的收件箱,但有两个新列,一列包含列表中"Variable"的值,另一列包含"Variable_"的值
要通过一个条件合并的代码通过"Variable"合并
List |>
unlist() |>
enframe() |>
separate_wider_delim(cols = name, names = c("Group", "Variable"), delim = ".") |>
right_join(data)
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_"), 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),
GROUP1 = list(V1_ = "x", V2_ = "x", V3_ = "x",
V4_ = "x", V5_ = "x"),
Group2 = list(V1_ = "x", V2_ = "x", V3_ = "x",
V4_ = "x", V5_ = "x"),
Group3 = list(V1_ = "x", V2_ = "x", V3_ = "x",
V4_ = "x", V5_ = "x"))