我的桌子有点挣扎。我正在尝试拆分一些变量(使用 R),但我在使用一个特定列时遇到了困难。
我的数据集是这样的:
test<-data.frame(
Chrom_no=c(1,1,2,3),
Region=c('12..13','22..23','100','34..36'),
Ref=c('AT','CG','A','AAA'),
Alt=c('TA','GA','T','CGG'),
Prob=c(99,98.7,99,99.9))
我想将所有组合在一起的区域分开。到目前为止,我已经解决了所有列,但“区域”之一:
ref2 <- strsplit(as.character(test$Ref), '')
alt2<-strsplit(as.character(test$Alt), '')
test2<-data.frame(
Chrom_no=rep(test$Chrom_no, vapply(ref2, FUN=length, FUN.VALUE=integer(1))),
Region=rep(test$Region, vapply(ref2, FUN=length, FUN.VALUE=integer(1))),
Ref=unlist(ref2),
Alt=unlist(alt2),
Prob=rep(test$Prob, vapply(ref2, FUN=length, FUN.VALUE=integer(1))))
我不知道如何解决修复该列:例如 '12..13': 12 应该放在 Ref=A 中,13 应该放在 Ref=T 中(分别是第一个和第二个字符)。事情变得复杂了,因为有些列有 3 个字符(对应的范围:22..24),有些列会有更多。
我该怎么解决?最近几天一直在寻找解决方案,但我仍然不知道如何解决。如果这已在其他地方解决,我深表歉意。PS:我知道为了在“区域”列上进行拆分,我需要使用:
'\\..'
作为分隔符。