在R中动态创建命名列表
问题描述:
我需要按照以下步骤在R中动态创建命名列表.
I need to create named lists dynamically in R as follows.
假设有一个名称数组.
name_arr<-c("a","b")
并且有一个值数组.
value_arr<-c(1,2,3,4,5,6)
我想做的是这样的:
list(name_arr[1]=value_arr[1:3])
但是,当我尝试执行此操作时,R会引发错误.关于如何解决这个问题有什么建议吗?
But R throws an error when I try to do this. Any suggestions as to how to get around this problem?
答
您可以使用setNames
.例子:
setNames(list(value_arr[1:3]), name_arr[1])
#$a
#[1] 1 2 3
setNames(list(value_arr[1:3], value_arr[4:6]), name_arr)
#$a
#[1] 1 2 3
#
#$b
#[1] 4 5 6
或不包含setNames
:
mylist <- list(value_arr[1:3])
names(mylist) <- name_arr[1]
mylist
#$a
#[1] 1 2 3
mylist <- list(value_arr[1:3], value_arr[4:6])
names(mylist) <- name_arr
mylist
#$a
#[1] 1 2 3
#
#$b
#[1] 4 5 6