如何使用字符向量元素为R语言列表中的对象命名?
正确给列表命名的方法
你原来的写法报错,是因为在list()函数里直接用表达式(比如as.character(char_vec[1]))作为参数名是不允许的,R要求这里的名称必须是字面量或者字符串,不能是动态计算的表达式。下面是几种可行的解决办法:
方法一:先创建列表,再赋值名称
先构建不含名称的列表,再用names()函数给元素指定名称:char_vec = c("hello","world","foo","bar") my_list <- list(1, 2, 3, 4) names(my_list) <- char_vec如果只需要给部分元素命名,比如前两个:
my_list <- list(1, 2) names(my_list) <- char_vec[1:2]方法二:用
setNames()函数一步完成setNames()可以直接把名称向量和列表绑定,写法更简洁:char_vec = c("hello","world","foo","bar") my_list <- setNames(list(1, 2, 3, 4), char_vec)方法三:用命名向量转换(如果元素是单一值)
如果你的列表元素都是单个值,还可以先创建命名向量,再转成列表:char_vec = c("hello","world","foo","bar") named_vec <- setNames(c(1,2,3,4), char_vec) my_list <- as.list(named_vec)
内容的提问来源于stack exchange,提问作者AlexLee
相关产品推荐
相关产品推荐

