吐出字符串然后粘贴在一起

时间:2017-08-07 22:53:32

标签: r string concatenation

我正在操纵我的计数数据(fcm)并将我的条形码ID作为列名称格式为:TCGA.BH.A0DQ.11A.12R.A089.07等

我继续使用:

CountCol= colnames(fcm)
 Barcode = strsplit(as.character(CountCol), ".", fixed=TRUE)

给我一​​个所有拆分字符串的列表,例如:

head(Barcode,2)
[[1]]
[1] "TCGA" "3C"   "AAAU" "01A"  "11R"  "A41B" "07"  

[[2]]
[1] "TCGA" "3C"   "AALI" "01A"  "11R"  "A41B" "07"  

我现在的问题是如何只将前三个元素组合在一起,使新的列名用“ - ”分隔(即TCGA-3C-AAAU为第一个,等等为下一个〜1200个值)

我希望这很清楚。 我尝试了一些方法,但仍未达到正确的解决方案。

2 个答案:

答案 0 :(得分:2)

尝试sapply

sapply(Barcode,function(x){paste(x[1:3],collapse="-")})

答案 1 :(得分:1)

您还可以使用purrr库来获得更简化的代码:

library(purrr)

x <- c("TCGA", "3C",   "AAAU", "01A",  "11R",  "A41B", "07" )
y <- c("TCGA", "3C",   "AALI", "01A",  "11R",  "A41B", "07" )
z <- list(x, y)

purrr::map(z, ~paste(.[1:3], collapse = "-"))

[[1]]
[1] "TCGA-3C-AAAU"

[[2]]
[1] "TCGA-3C-AALI"