Подстановка объекта в R по символьной последовательности - PullRequest
0 голосов
/ 14 февраля 2020

Я хотел бы поместить объект в R в соответствии с суффиксами штрих-кодов, которые он содержит. Они заканчиваются на '-n', где n - это число от 1 до 6. Например, AAACCGTGCCCTCA-1, GAACCGTGCCCTCA-2, CATGCGTGCCCTCA-5 и др. c. Я хотел бы, чтобы вся соответствующая информация о каждом штрих-коде была соответственно разделена. Вот пример кода объекта, cds.

grp = sub("[A-Z]*[-]","",cds$barcodes)
group1 = cds[,grp==1]

Однако при просмотре group1 я получаю

> group1$barcode
factor(0)
7047 Levels: AAACATACCAGTTG-3 AAACATACTATGCG-4 AAACATTGAAGCCT-5 AAACATTGGCGAAG-4 AAACATTGTGAAGA-4     ... TTTGCATGGCCAAT-5

, и все штрих-коды все еще там. Я также не хочу заменять штрих-коды на число в конце - я просто хочу, чтобы R указывал найти определенный c штрих-код по номеру, в котором он заканчивается, поэтому я могу сгруппировать их, но сохранить штрих-коды, как они есть.

Например, я бы хотел, чтобы штрих-коды group1 $ выглядели примерно так:

group1$barcode
1   AAACCGTGCCCTCA-1
2   AAACGCACACGCAT-1
3   AAACGGCTTCCGAA-1
4   AAAGACGAACCCAA-1
5   AAAGACGACTGTTT-1
6   AAAGAGACAAAGCA-1
7   AAAGATCTGGTAAA-1
8   AAAGCAGAGCAAGG-1
9   AAAGCAGATTATCC-1
10  AAAGCCTGATGACC-1

Большое спасибо!

Абигейл

1 Ответ

1 голос
/ 14 февраля 2020

Редактировать:

Использовать 'суффикс', а не 'префикс'!

Я бы предложил использовать dplyr:

library(dplyr)
cds %>%
mutate(grp = gsub("([A-Z]*)-([0-9]+)", "\\2", barcodes))

А затем отфильтровать отдельные группы :

cds %>%
  mutate(grp = gsub("([A-Z]*)-([0-9]+)", "\\2", barcodes)) %>% 
  filter(grp == 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...