从 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)
我有两个列表
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)