Ошибка в dplyr:: выделенный объект ‘symbol’ не найден

#r

#r

Вопрос:

Я пытаюсь запустить этот код в своих результатах DESeq2:

 res2 <- res %>% 
        dplyr::select(symbol, log2FoldChange) %>% 
        na.omit() %>% 
        distinct() %>% 
        group_by(symbol) %>% 
        summarize(log2FoldChange=mean(log2FoldChange))
  

Но я получаю эту ошибку:

 Error in dplyr::select(symbol, log2FoldChange) : 
  object 'symbol' not found
  

Когда я оцениваю объект ‘res’, я получаю:

 > head(res)
# A tibble: 6 x 8
  rn              baseMean log2FoldChange  lfcSE   stat pvalue  padj symbol  
  <chr>              <dbl>          <dbl>  <dbl>  <dbl>  <dbl> <dbl> <chr>   
1 ENSG00000000003  2040.           0.0814 0.131   0.620  0.535 0.930 TSPAN6  
2 ENSG00000000005     5.54        -0.104  0.499  -0.209  0.834 0.982 TNMD    
3 ENSG00000000419  1828.           0.0390 0.0886  0.440  0.660 0.954 DPM1    
4 ENSG00000000457  1114.          -0.0382 0.0803 -0.476  0.634 0.949 SCYL3   
5 ENSG00000000460   663.           0.0394 0.0921  0.428  0.669 0.957 C1orf112
6 ENSG00000000938   918.          -0.0434 0.273  -0.159  0.874 0.987 FGR 
  

Есть какие-нибудь мысли о том, почему я получаю эту ошибку?

Спасибо!

Редактировать: Дополнительная информация по запросу

 > dput(head(res))
structure(list(baseMean = c(2040.17521944921, 5.53609220799949, 
1828.04839454014, 1114.39825326351, 663.272170737668, 917.926275504702
), log2FoldChange = c(0.0814012199675586, -0.104396236568964, 
0.0389707604672832, -0.0382384463698326, 0.0394052136314087, 
-0.0433716144240011), lfcSE = c(0.131233608151441, 0.499358140892215, 
0.0885766164675523, 0.0802904557652864, 0.0921313457310054, 0.273241538579558
), stat = c(0.620277237776039, -0.209060848357127, 0.43996668671081, 
-0.476251454863021, 0.427706914717815, -0.158729945122794), pvalue = c(0.535075278167851, 
0.834400737814053, 0.659961235306142, 0.633895245664946, 0.668864514978433, 
0.873881644474217), padj = c(0.929599472449125, 0.981580093253924, 
0.95444406250506, 0.948683101642693, 0.956624174981231, 0.986958116649299
), symbol = c("TSPAN6", "TNMD", "DPM1", "SCYL3", "C1orf112", 
"FGR")), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))
> 
  

Также:

 names(res)
[1] "baseMean"       "log2FoldChange" "lfcSE"          "stat"           "pvalue"         "padj"           "symbol"        
> 
  

Комментарии:

1. Не удается воспроизвести ошибку с 1.0.1 версией dplyr

2. Можете ли вы проверить, есть ли начальные / запаздывающие пробелы в именах столбцов, т.Е. names(res)

3. Вместо того, чтобы просто делиться head() , пожалуйста, поделитесь dput(head(res))

4. Я думаю, @akrun в курсе вашей проблемы. Запустите names(res)[7] и убедитесь, что имя столбца совпадает с тем, которое вы используете в своем коде (т.Е. names(res)[7] == "symbol" должно возвращать TRUE).

5. Я получаю ошибку, если оставляю ваши знаки в своем коде. Если вы используете %>% , в этом нет необходимости.