组合 R 中列表列表中的元素

combining elements in a list of lists in R

我有一个名为 samples_ID 的列表,其中包含 116 个向量,每个向量包含如下三个元素:

"11"         "GT20-16829" "S27"

我想保留 116 个向量,但将这些元素组合成一个元素,就像这样

"11_GT20-16829_S27"

我试过这样的东西

samples_ID_ <- paste(samples_ID, collapse = "_")

它returns一个向量,下面只是它的一部分:

..._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="_")

另一个基本 R 选项使用 paste

do.call(paste, c(data.frame(t(list2DF(samples_ID))), sep = "_"))

do.call(paste, data.frame(do.call(rbind, samples_ID)), sep = "_"))