Как извлечь определенные c частоты из таблиц очень больших частот в R? - PullRequest
1 голос
/ 24 февраля 2020

Я делаю таблицы частот (из длинного списка генети c последовательностей) количества раз, когда гены появляются в моих образцах секвенирования. Я прекрасно использовал функцию ftable (), но я сужаю область поиска и хочу сосредоточиться на нескольких конкретных c генах из многих тысяч.

Мой рабочий процесс в настоящее время выглядит следующим образом:

  1. Я создаю таблицы частот для всех генов в образце.
  2. Экспорт этой таблицы в CSV.
  3. Используйте control + f в Excel, чтобы извлечь определенные c частоты генов, которые меня интересуют.

Это кажется очень неэффективным, учитывая количество выборок, которые я планирую проанализировать.

Есть ли способ использовать R для извлечения определенных записей в таблице частот?

До сих пор я пробовал [c (,,,)] и a, [,,, ] методы безрезультатны. Я получил ошибку "неожиданный символ".

Я надеюсь, что проблема не в дефисе в названии гена, потому что я не могу его удалить.

Я приложил скриншот моего окна R для справки.

Вот скриншот моего окна R Вот атрибуты таблицы частот

structure(list(Sequence.number = c(1L, 2L, 4L, 5L, 6L, 7L, 10L, 11L, 13L, 14L), Variable = structure(c(25L, 2L, 22L, 19L, 19L, 19L, 7L, 1L, 25L, 19L), .Label = c("V1-13", "V1-18", "V1-2", "V1-21", "V1-36", "V1-39", "V1-42", "V10D-9", "V11-25", "V12D-36", "V12D-56", "V15D-54", "V1D-15", "V1D-73", "V3-20", "V3D-30", "V4D-24", "V4D-43", "V4D-60", "V6-31", "V6-35", "V6-4", "V6D-40", "V6D-76", "V8-30", "V8-46", "V8-5", "V9-15", "V9-23", "V9D-2" ), class = "factor"), Diversity = structure(c(13L, 17L, 2L, 5L, 3L, 5L, 2L, 14L, 13L, 15L), .Label = c("", "D1", "D1T1", "D1T2", "D2", "D2D", "D2T1", "D2T1D", "D2T2", "D3", "D3T1", "D3T1D", "D4", "D4T1D", "D5", "D5T1D", "D6"), class = "factor"), Joining = structure(c(1L, 7L, 8L, 8L, 4L, 8L, 1L, 9L, 1L, 8L), .Label = c("J1", "J1T1", "J1T2", "J2", "J2D", "J2T1", "J3", "J4", "J5", "J6D"), class = "factor")), row.names = c(NA, 10L), class = "data.frame")

1 Ответ

0 голосов
/ 24 февраля 2020

Используя то, что у вас есть выше в качестве примера:

Как вы правильно сделали, вы table 3 переменных, которые я использую ниже, чтобы вам не нужно было повторять WeekZero $ 3 раза:

Freq = with(WeekZero,table(Variable,Diversity,Joining))

Мы смотрим на таблицу, и она продолжается:

ftable(Freq)
                   Joining J1 J1T1 J1T2 J2 J2D J2T1 J3 J4 J5 J6D
Variable Diversity                                              
V1-13                       0    0    0  0   0    0  0  0  0   0
         D1                 0    0    0  0   0    0  0  0  0   0
         D1T1               0    0    0  0   0    0  0  0  0   0
         D1T2               0    0    0  0   0    0  0  0  0   0
         D2                 0    0    0  0   0    0  0  0  0   0
         D2D                0    0    0  0   0    0  0  0  0   0
         D2T1               0    0    0  0   0    0  0  0  0   0

Чтобы получить подсчет голосов от "V1-13", вы go возвращаетесь к объекту таблицы, определяете его перед первой запятой это относится к измерению "z" массива:

Freq["V1-13",,]

Чтобы получить V1-13 и Diversity как D1, вы go для строки, которая является следующей запятой:

Freq["V1-13","D1",]
  J1 J1T1 J1T2   J2  J2D J2T1   J3   J4   J5  J6D 
   0    0    0    0    0    0    0    0    0    0 

Чтобы получить V1-13 и присоединиться == J1:

Freq["V1-13",,"J1"]
         D1  D1T1  D1T2    D2   D2D  D2T1 D2T1D  D2T2    D3  D3T1 D3T1D    D4 
    0     0     0     0     0     0     0     0     0     0     0     0     0 
D4T1D    D5 D5T1D    D6 
    0     0     0     0 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...