Определение переменной 'condition' в DESeq2 - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь использовать DESeq2.

При определении переменной условия у меня возникают проблемы с преобразованием вводимых данных в коэффициент.

Мои вводимые данные представляют собой фрагмент из электронной таблицы, из которой я импортировал excel.

condition<-Samples1[,9]

Когда я печатаю эту переменную, я получаю:

> condition
# A tibble: 88 x 1
   `Ever Use Tobacco (1=N, 2=Y)`
   <chr>                        
 1 N                            
 2 Y                            
 3 N                            
 4 N                            
 5 N                            
 6 N                            
 7 N                            
 8 N                            
 9 Y                            
10 N                            
# … with 78 more rows

Когда я проверяю тип, я получаю:

> str(condition)
tibble [88 × 1] (S3: tbl_df/tbl/data.frame)
 $ Ever Use Tobacco (1=N, 2=Y): chr [1:88] "N" "Y" "N" "N" ...

Когда я пытаюсь преобразовать на множитель, я получаю:

> factor<-factor(condition)
> factor
Ever Use Tobacco (1=N, 2=Y) 
                       <NA> 
Levels: c("N", "Y")

Другой метод, который я нашел для DESeq2, также не работает:

> conditionc<-factor(c(condition))
> conditionc
                                                                                                                                                                                                                                                                                                                                                                                                                              Ever Use Tobacco (1=N, 2=Y) 
c("N", "Y", "N", "N", "N", "N", "N", "N", "Y", "N", "N", "N", "N", "Y", "Y", "Y", "N", "N", "N", "N", "Y", "N", "Y", "Y", "Y", "N", "N", "Y", "N", "Y", "N", "N", "N", "Y", "N", "N", "N", "N", "Y", "Y", "N", "N", "Y", "Y", "N", "N", "Y", "N", "Y", "N", "N", "N", "N", "N", "N", "N", "N", "Y", "Y", "N", "N", "Y", "Y", "N", "N", "N", "N", "N", "Y", "N", "N", "Y", "N", "N", "Y", "N", "N", "N", "Y", "Y", "N", "N", "Y", "Y", "Y", "N", "Y", "N") 
Levels: c("N", "Y", "N", "N", "N", "N", "N", "N", "Y", "N", "N", "N", "N", "Y", "Y", "Y", "N", "N", "N", "N", "Y", "N", "Y", "Y", "Y", "N", "N", "Y", "N", "Y", "N", "N", "N", "Y", "N", "N", "N", "N", "Y", "Y", "N", "N", "Y", "Y", "N", "N", "Y", "N", "Y", "N", "N", "N", "N", "N", "N", "N", "N", "Y", "Y", "N", "N", "Y", "Y", "N", "N", "N", "N", "N", "Y", "N", "N", "Y", "N", "N", "Y", "N", "N", "N", "Y", "Y", "N", "N", "Y", "Y", "Y", "N", "Y", "N")
> 

Данные должны выглядеть как пример :

> condition <- factor(c(rep("ctl", 4), rep("exp", 4)))
> condition
[1] ctl ctl ctl ctl exp exp exp exp
Levels: ctl exp

Кто-нибудь может объяснить, что я делаю неправильно?

1 Ответ

0 голосов
/ 01 августа 2020

Причина в том, что condition - это tibble/data.frame с одним столбцом. Нам нужно извлечь как вектор, поскольку x in factor в соответствии с ?factor это

x - вектор данных, обычно принимающий небольшое количество различных значений.

Мы можем извлечь столбец с помощью [[

factor(condition[[1]]) # // extract the first column

или unlist

factor(unlist(condition))

или извлечь с именем столбца

factor(condition$`Ever Use Tobacco (1=N, 2=Y)`)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...