如何在R中创建元素为相同双值向量的命名列表?
解决方案
Base R 实现
你可以用replicate生成重复的向量列表,再用setNames指定名称:
list_vec <- c('item1', 'item2', 'item3') val_vec <- c(0.5, 3) result_list <- setNames(replicate(length(list_vec), val_vec, simplify = FALSE), list_vec)
replicate的simplify = FALSE参数确保返回的是列表而非矩阵,每个元素都是独立的val_vec向量。
也可以用lapply实现,逻辑类似:
result_list <- setNames(lapply(list_vec, function(x) val_vec), list_vec)
tidyverse 实现
借助purrr包的map函数,结合管道和set_names可以更简洁地完成:
library(purrr) list_vec <- c('item1', 'item2', 'item3') val_vec <- c(0.5, 3) result_list <- map(list_vec, ~val_vec) %>% set_names(list_vec)
运行上述代码后,输出的列表结构完全符合预期:
$item1 [1] 0.5 3 $item2 [1] 0.5 3 $item3 [1] 0.5 3
内容的提问来源于stack exchange,提问作者Jon_doing_data
相关产品推荐
相关产品推荐

