R读取器包 - 写入和读入的文件不匹配源

时间:2016-04-20 19:42:36

标签: r readr

我提前道歉,因为这里的再现性有些不足。我正在对一个非常大的(对我来说)数据集进行分析。它来自CMS Open Payments database

我从该网站下载了四个文件,使用readr读入R,然后稍微操作以使它们变小(删除列),然后使用rbind将它们全部粘在一起。我想把我的削减文件写到外部硬盘上,所以每次我想要处理它并且然后进行配对时我都不必读取所有数据。 (显然,它全部都是脚本化的,但是,这需要大约45分钟才能完成,所以如果可能的话,我希望避免使用它。)

所以我写出了数据并将其读入,但现在我得到了不同的结果。以下是我能得到一个很好的例子。数据名为sa_all。表中有一列用于源。它只能采用两个值:genres。它是一个实际作为分析的一部分添加的列,而不是数据中的一个列。

 table(sa_all$src)

 gen      res 
14837291   822559 

所以我将sa_all数据框保存到CSV文件中。

write.csv(sa_all, 'D:\\Open_Payments\\data\\written_files\\sa_all.csv',
      row.names = FALSE)

然后我打开它:

sa_all2 <- read_csv('D:\\Open_Payments\\data\\written_files\\sa_all.csv')

table(sa_all2$src)

g      gen      res 
1 14837289   822559 

我确实收到了以下解析警告。

Warning: 4 parsing failures.
row        col           expected        actual
5454739 pmt_nature                    embedded null
7849361 src        delimiter or quote 2            
7849361 src                           embedded null
7849361 NA         28 columns         54 columns   

由于我手动添加src列并且它只能使用两个值,因此我不知道这可能会导致任何解析错误。

使用readr是否有任何类似问题?谢谢。

只是为了跟进评论:

write_csv(sa_all, 'D:\\Open_Payments\\data\\written_files\\sa_all.csv')
sa_all2a <- read_csv('D:\\Open_Payments\\data\\written_files\\sa_all.csv')
Warning: 83 parsing failures.
    row   col   expected        actual
1535657 drug2            embedded null
1535657 NA    28 columns 25 columns   
1535748 drug1            embedded null
1535748 year  an integer No           
1535748 NA    28 columns 27 columns   

更多解析错误,看起来有些列完全被洗牌:

table(sa_all2a$src)

         100000000278         Allergan Inc.                   gen GlaxoSmithKline, LLC. 
                    1                     1              14837267                     1 
                   No                   res 
                    1                822559 

制造商名称有列,当我使用src函数时,它们似乎会泄漏到write_csv列中。

0 个答案:

没有答案