zerofung 发表于 2019-7-1 23:55 
又碰到一个在经管论坛学生信的哈哈哈,我也是。
几个重要函数给你参考,首先是substr,就是把字符串截出来 ...
谢谢你富有价值回答!
在你的提醒下,我首先提取了01A和11A的样本。在此基础上,通过substr函数对字符串进行剪切,然后利用两次duplicated操作(基于fromLast=T or F)来识别重叠的样本编号,最后利用which函数得到想要的结果。代码如下,如有错误,请指教,再次感谢!
#normal
n_index <- which(as.numeric(substr(samples,14,15)) == 11)
#tumor
t_index <- which(as.numeric(substr(samples,14,15)) == 01 )
samples <- samples[c(n_index, t_index)]
#string processing for the samples name
strsub <- function(temp){
  return(substr(temp,1,12))
}
temp <- unlist(lapply(samples, strsub))
ll <- duplicated(temp, fromLast = T) 
lll <- duplicated(temp, fromLast = F)
samples <- samples[c(which(ll==TRUE),which(lll==TRUE))]