问题描述
我有一个名为 samples_ID
的列表,其中包含 116 个向量,每个向量包含三个元素,如下所示:
"11" "GT20-16829" "S27"
我想保留 116 个向量,但像这样将元素组合成一个元素
"11_GT20-16829_S27"
我试过这样的事情
samples_ID_ <- paste(samples_ID,collapse = "_")
它返回一个向量,下面只是其中的一部分:
..._c(\"33\",\"GT20-16846\",\"S24\")_c(\"33\",\"GT20-18142\",\"S72\")_c(\"34\",\"GT20-16819\",\"S50\")_c...
我做错了什么? 你能帮我吗? 谢谢
解决方法
一个 tidyverse 选项。
library(stringr)
library(purrr)
map(samples_ID,~ str_c(.,collapse = '_'))
# [[1]]
# [1] "11_GT20-16829_S27"
#
# [[2]]
# [1] "12_GT20-16830_S28"
数据
samples_ID <- list(c("11","GT20-16829","S27"),c("12","GT20-16830","S28"
))
,
在base R
中,我们可以使用sapply
sapply(samples_ID,paste,collapse="_")
,
使用 paste
的另一个基本 R 选项
do.call(paste,c(data.frame(t(list2DF(samples_ID))),sep = "_"))
或
do.call(paste,data.frame(do.call(rbind,samples_ID)),sep = "_"))