如何创建包含5个独立TRUE元素的多层级R列表?
创建层级独立的单元素TRUE列表
你想要的是一个包含5个独立子元素的列表,每个子元素都是逻辑值TRUE,每个子元素单独占据列表的一层(而非把多个TRUE打包成一个向量放在单个列表元素里)。
你之前用的trlst <- (list(rep('True',5)))之所以不符合预期,是因为rep('True',5)生成了一个5元素的字符串向量,然后list()把这个向量当成了列表的唯一一个元素,所以最终得到的是长度为1的列表,里面嵌套了一个向量。
几种可行的修改方法:
用
as.list()转换逻辑向量
先生成一个包含5个TRUE的逻辑向量,再转成列表,每个元素会自动独立成列表的一层:trlst <- as.list(rep(TRUE, 5))输出效果:
$`1` [1] TRUE $`2` [1] TRUE $`3` [1] TRUE $`4` [1] TRUE $`5` [1] TRUE手动逐个定义列表元素
直接在list()里逐个传入TRUE,每个值都会成为独立的列表元素:trlst <- list(TRUE, TRUE, TRUE, TRUE, TRUE)用
lapply()生成
通过循环生成每个独立的TRUE元素:trlst <- lapply(1:5, function(x) TRUE)
如果需要自定义列表元素名称
如果要改成你示例里的1、2、4、7、15这类自定义名称,可以给列表赋值names:
trlst <- as.list(rep(TRUE, 5)) names(trlst) <- c("1", "2", "4", "7", "15")
输出就会和你给出的示例格式一致。
内容的提问来源于stack exchange,提问作者pkha
相关产品推荐
相关产品推荐

