我需要在 R 中动态创建命名列表,如下所示。
假设有一个名称数组。
name_arr<-c("a","b")
Run Code Online (Sandbox Code Playgroud)
并且有一个值数组。
value_arr<-c(1,2,3,4,5,6)
Run Code Online (Sandbox Code Playgroud)
我想做的是这样的:
list(name_arr[1]=value_arr[1:3])
Run Code Online (Sandbox Code Playgroud)
但是当我尝试执行此操作时,R 会抛出错误。关于如何解决这个问题有什么建议吗?
小智 9
您可以使用[[...]]将值分配给字符串给出的键:
my.list <- list()
my.list[[name_arr[1]]] <- value_arr[1:3]
Run Code Online (Sandbox Code Playgroud)
你可以使用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
Run Code Online (Sandbox Code Playgroud)
或者没有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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3066 次 |
| 最近记录: |