我有一个这样的TSV文件.
readId | V_segment |
---|---|
abc | IGHV3-18-F(2695) |
def | IGHV3-9-F(2714),IGHV3-12-F(2656) |
ghi | IGHV3-9-F(2840) |
jkl | IGHV3-10-F(2666),IGHV3-18-F(2666) |
使用R,我需要过滤,一方面,那些在列"V_segment"中包含值的行,另一方面,那些在列"V_segment"中包含两个或更多值的行(值由逗号分隔).然后创建两个表:一个表中的行在"V_segment"列中有一个值,另一个表中的行剩余.
到目前为止,我编写的代码是:
df <- read_tsv('alignments.tsv')
alignments_v <- data.frame(df$readId, df$V_segment,
stringsAsFactors = FALSE)
x <- alignments_v %>% separate(df.V_segment, c('V segment', 'Combinations V segment'), sep = ',')
但我得不到我想要的.
我需要获得:
一张这样的桌子:
readId | V_segment |
---|---|
abc | IGHV3-18-F(2695) |
ghi | IGHV3-9-F(2840) |
和其他表,其中行在"V_SEGMENT"列中有两个值:
readId | V_segment |
---|---|
def | IGHV3-9-F(2714),IGHV3-12-F(2656) |
jkl | IGHV3-10-F(2666),IGHV3-18-F(2666) |
你能帮我个忙吗?
提前谢谢您!