从 R 将两个列表转换为一个列表

Convert two list in one list from R

我有两个列表

var1=c("fe1","fe2")
var2=c("A1","A2")

我尝试用一​​个循环来做到这一点

list_final  <- list("fe1" = "A1", "fe2" = "A2")

我的代码在那里

library("rlist")

list_final <-list()
for(i in var1) {
  for(d in var2) {
    x = setNames(i, paste0(d))
    list.append(list_final,x)
}
}

但是列表总是空的

我们可以使用 setNames 创建命名的 vector 并转换为 list with as.list in base R(不使用 for 循环)

list_final2 <- as.list(setNames(var2, var1))

-检查 OP 的预期

identical(list_final, list_final2)
#[1] TRUE

如果您在 var1 中有 唯一 值,您可以使用 split

尝试下面的代码
> split(var2,var1)
$fe1
[1] "A1"

$fe2
[1] "A2"

否则,应应用的方法

循环方法也很有用:

#Data
var1=c("fe1","fe2")
var2=c("A1","A2")
#List
List <- list()
#Loop
for(i in 1:length(var1))
{
  List[[var1[i]]]<-var2[i]
}
List

输出:

List
$fe1
[1] "A1"

$fe2
[1] "A2"

就像这样: as.list(names(var2)<-var1)