首页 > 解决方案 > 在 for 循环中添加元素或拆分字符串时,有没有办法在 R 中创建普通列表?'不是列表列表'

问题描述

有没有办法创建一个普通的列表?不是“列表列表”。我不得不取消列出我的清单。

prior_trt = "chemo or egfr"

if (str_detect(tolower(prior_trt), "or")){
     prior_trt = str_split(prior_trt, " or ")
 }

> prior_trt
[[1]]
[1] "chemo" "egfr" 

unlist(prior_trt)

类似情况

prior_trt = c("chemo","egfr")
for (i in 1:length(prior_trt)) {
     pt[[i]] <- paste0("prior_trt_", tolower(prior_trt[i]))
}

> pt
[[1]]
[1] "prior_trt_chemo"

[[2]]
[1] "prior_trt_egfr"

标签: rlist

解决方案


默认情况下,str_split返回一个列表。您可以使用参数返回一个矩阵simplify=TRUE(请参阅doc

对于第二种情况,您可以定义pt为向量并填充它(使用单括号)

library(stringr)
prior_trt = c("chemo","egfr")
pt <- rep(NA, length(prior_trt))
for (i in 1:length(prior_trt)) {
     pt[i] <- paste0("prior_trt_", tolower(prior_trt[i]))
}

推荐阅读