我首先要解决一个简单的问题我必须为我的阶段创建一个向量,然后需要为数量不同的样本生成另一个向量。
下面的代码做到了我所需要的,但无论如何都可以将它们组合成一个吗
stage <- c("Blast","HSC","LSC")
sample1 <- c(rep("Blast", 2), rep("HSC",4), rep("LSC", 3))
Sample1 <- ave(sample1, sample1, FUN = function(i) paste0(i, '_', seq_along(i)))
Sample1
任何建议或帮助都将非常感谢
或者其他方法。。。
stage <- c("Blast","HSC","LSC")
count <- c(2, 4, 3)
paste(rep(stage, count), sequence(count), sep = "_")
[1] "Blast_1" "Blast_2" "HSC_1" "HSC_2" "HSC_3" "HSC_4" "LSC_1" "LSC_2" "LSC_3"
也许在Map
中使用paste
是另一种方式。
stage <- c(Blast = 2, HSC = 4, LSC = 3)
unlist(Map(function(x, y) paste(x, seq_len(y), sep="_"), names(stage), stage)
, FALSE, FALSE)
#[1] "Blast_1" "Blast_2" "HSC_1" "HSC_2" "HSC_3" "HSC_4" "LSC_1"
#[8] "LSC_2" "LSC_3"