readr :: read_tsv () ошибки разбора из-за конечных вкладок - PullRequest
0 голосов
/ 01 апреля 2020

Проблема / Вопрос

У меня есть файл с разделителями табуляции my-data.txt с 51 столбцом. Строка col_names не имеет конечных вкладок, а readr::read_tsv() правильно определяет 51 столбец. Однако все столбцы данных содержат конечные вкладки, и readr::read_tsv() неправильно интерпретирует их как наличие 52 столбцов. Пока код работает, я получаю предупреждение, от которого я хотел бы избавиться. Есть ли read_tsv() аргументы, которые могут помочь справиться с этим? Должен ли я вместо этого использовать другую функцию readr?

my-data.txt

PT  AU  BA  CA  GP  RI  OI  BE  Z2  TI  X1  Y1  Z1  FT  PN  AE  Z3  SO  S1  SE  BS  VL  IS  SI  MA  BP  EP  AR  DI  D2  SU  PD  PY  AB  X4  Y4  Z4  AK  CT  CY  SP  CL  TC  Z8  ZB  ZS  Z9  SN  BN  UT  PM
J   Jacquelin, Sebastien; Straube, Jasmin; Cooper, Leanne; Vu, Therese; Song, Axia; Bywater, Megan; Baxter, Eva; Heidecker, Matthew; Wackrow, Brad; Porter, Amy; Ling, Victoria; Green, Joanne; Austin, Rebecca; Kazakoff, Stephen; Waddell, Nicola; Hesson, Luke B.; Pimanda, John E.; Stegelmann, Frank; Bullinger, Lars; Doehner, Konstanze; Rampal, Raajit K.; Heckl, Dirk; Hill, Geoffrey R.; Lane, Steven W.                              Jak2V617F and Dnmt3a loss cooperate to induce myelofibrosis through activated enhancer-driven inflammation                              BLOOD               132 26          2707    2721        10.1182/blood-2018-04-846220            DEC 27 2018 2018                                        10                          WOS:000454429300003     
J   Renne, Julius; Gutberlet, Marcel; Voskrebenzev, Andreas; Kern, Agilo; Kaireit, Till; Hinrichs, Jan; Zardo, Patrick; Warnecke, Gregor; Krueger, Marcus; Braubach, Peter; Jonigk, Danny; Haverich, Axel; Wacker, Frank; Vogel-Claussen, Jens; Zinne, Norman                               Multiparametric MRI for organ quality assessment in a porcine Ex-Vivo lung perfusion system                             PLOS ONE                13  12                  e0209103    10.1371/journal.pone.0209103            DEC 27 2018 2018                                        1                           WOS:000454418200015     
J   Lau, Skadi; Eicke, Dorothee; Oliveira, Marco Carvalho; Wiegmann, Bettina; Schrimpf, Claudia; Haverich, Axel; Blasczyk, Rainer; Wilhelmi, Mathias; Figueiredo, Constanca; Boeer, Ulrike                              Low Immunogenic Endothelial Cells Maintain Morphological and Functional Properties Required for Vascular Tissue Engineering                             TISSUE ENGINEERING PART A               24  5-6         432 447     10.1089/ten.tea.2016.0541           MAR 2018    2018                                        4                           WOS:000418327100001     

Представлять

Обратите внимание, что я сделал некоторое ручное редактирование представьте, потому что мне нужно было прочитать в файле .txt, чтобы воспроизвести проблему, но это вызывает ошибки в представлении без моего компьютерно-указанного c пути). См. Сообщество RStudio Topi c 8773

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(readr)

my_data <- read_tsv("my-data.txt", quote = "")
#> Parsed with column specification:
#> cols(
#>   .default = col_logical(),
#>   PT = col_character(),
#>   AU = col_character(),
#>   TI = col_character(),
#>   SO = col_character(),
#>   VL = col_double(),
#>   IS = col_character(),
#>   BP = col_double(),
#>   EP = col_double(),
#>   AR = col_character(),
#>   DI = col_character(),
#>   PD = col_character(),
#>   PY = col_double(),
#>   TC = col_double(),
#>   UT = col_character()
#> )
#> See spec(...) for full column specifications.
#> Warning: 3 parsing failures.
#> row col   expected     actual                                   file
#>   1  -- 51 columns 52 columns 'my-data.txt'
#>   2  -- 51 columns 52 columns 'my-data.txt'
#>   3  -- 51 columns 52 columns 'my-data.txt'

problems(my_data)
#> # A tibble: 3 x 5
#>     row col   expected   actual     file                                  
#>   <int> <chr> <chr>      <chr>      <chr>                                 
#> 1     1 <NA>  51 columns 52 columns 'my-data.txt'
#> 2     2 <NA>  51 columns 52 columns 'my-data.txt'
#> 3     3 <NA>  51 columns 52 columns 'my-data.txt'

Создано в 2020-04-01 пакетом prepx (v0.3.0 )

Спасибо, что нашли время помочь мне.

1 Ответ

0 голосов
/ 01 апреля 2020

Мой любимый читатель .tsv - fread из data.table. Это часто работает прямо из коробки. Возможно, стоит попробовать.

library(data.table)
my_data <- fread("my-data.txt")
...