2017-11-03 3 views
2

Ich bin neu für R-Programmierung. Ich benutze R 3.4.2 in Mac OS X EI Capitan V10.11.6.Fehler beim Lesen von Wikipedia-Daten mit R und readr

Wenn ich versuchte, Daten von unten URL zu lesen, habe ich Fehler. Kann jemand helfen?

Datenquelle-Link: https://dumps.wikimedia.org/other/pageviews/2017/2017-10/pageviews-20171001-010000.gz

Die Datei vier Felder enthält: Sprache, Wikipedia Seitentitel, Anzahl der Anfragen, die Seite in dieser Stunde erhalten, Gesamtgröße in Byte des Inhalts zurückgegeben. Es ist CSV-Datei durch Leerzeichen ohne Kopfzeile getrennt.

Ich versuchte Tabelle mit folgendem Code zu lesen:

df <- read.table("https://dumps.wikimedia.org/other/pageviews/2017/2017-10/pageviews-20171001-010000.gz", sep = " ", stringsAsFactors = FALSE, header = FALSE, encoding = "UTF-8") 

Der Fehler ich habe ist

Fehler in Scan (file = Datei, was = was, sep = sep, quote = Zitat Dez. = dec: Zeile 1 nicht über 2 Elemente Zusätzlich: Warnmeldung: In read.table ("https://dumps.wikimedia.org/other/pageviews/2017/2017-10/pageviews-20171001-010000.gz": Leitung 1 erscheint eingebettet nulls enthalten

Auch ich habe versucht, Readr-Paket zu verwenden, immer noch fehlgeschlagen. Der Code, den ich verwendet, ist unter

df <- read_delim("https://dumps.wikimedia.org/other/pageviews/2017/2017-10/pageviews-20171001-010000.gz", delim = " ", col_names = FALSE) 

BTW, wenn ich diese Daten mit Funken scala lesen, gibt es kein Problem.

+0

Zugabe Ausgabe von 'devtools :: session_info()' kann Triage Ursache – hrbrmstr

Antwort

0
library(stringi) 
library(tidyverse) 

gzfile("pageviews-20171001-010000.gz") %>% 
    readLines(skipNul=TRUE) %>% 
    stri_split_fixed(" ", simplify=TRUE) %>% 
    as_data_frame() -> xmat 

xmat 

## # A tibble: 4,598,475 x 4 
##  V1        V2 V3 V4 
## <chr>        <chr> <chr> <chr> 
## 1 aa     Category:Articles  1  0 
## 2 aa     Category:User_aa  1  0 
## 3 aa  File:Wikipedia-logo-en.png  2  0 
## 4 aa       Main_Page 35  0 
## 5 aa    Special:ActiveUsers  6  0 
## 6 aa Special:Contributions/Lars~aawiki  1  0 
## 7 aa Special:Contributions/PipepBot  1  0 
## 8 aa     Special:ListFiles  3  0 
## 9 aa     Special:ListUsers  3  0 
## 10 aa    Special:Statistics 10  0 
## # ... with 4,598,465 more rows 
+0

Danke, @hrbrmstr helfen. Ich frage mich nur, warum read.table und read_delim nicht funktioniert haben. Kannst du helfen? – Linda

+0

b/c gibt es in der Tat eingebettete Nullen und die zugrundeliegende Scala/Java für Spark ist wahrscheinlich toleranter. 'read_delim (" pageviews-20171001-010000.gz ", delim =" ", col_names = FALSCH, locale = locale (encoding =" UTF-8 "))' funktioniert auch – hrbrmstr

+0

Ich habe versucht, locale mit read_delim zu versuchen. Immer noch habe ich 4,421,548 Zeilen statt 4,598,475 – Linda

0

Funktioniert in meinem Fall. Könnte es abhängig von der System/Paket-Version sein?

library(readr) 

df <- read_delim("https://dumps.wikimedia.org/other/pageviews/2017/2017-10/pageviews-20171001-010000.gz", 
       delim = " ", col_names = FALSE) 
df 
# A tibble: 4,421,548 x 4 
##X1        X2 X3 X4 
##<chr>        <chr> <int> <int> 
##1 aa     Category:Articles  1  0 
##2 aa     Category:User_aa  1  0 
##3 aa  File:Wikipedia-logo-en.png  2  0 
##4 aa       Main_Page 35  0 
##5 aa    Special:ActiveUsers  6  0 
##6 aa Special:Contributions/Lars~aawiki  1  0 
##7 aa Special:Contributions/PipepBot  1  0 
##8 aa     Special:ListFiles  3  0 
##9 aa     Special:ListUsers  3  0 
##10 aa    Special:Statistics 10  0 
# ... with 4,421,538 more rows 
sessionInfo() 
##R version 3.4.2 (2017-09-28) 
##Platform: x86_64-pc-linux-gnu (64-bit) 
##Running under: Ubuntu 17.10 
## 
##Matrix products: default 
##BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3 
##LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so 
## 
##locale: 
##[1] LC_CTYPE=en_US.UTF-8  LC_NUMERIC=C    
##[3] LC_TIME=en_US.UTF-8  LC_COLLATE=en_US.UTF-8  
##[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 
##[7] LC_PAPER=en_US.UTF-8  LC_NAME=C     
##[9] LC_ADDRESS=C    LC_TELEPHONE=C    
##[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C  
## 
##attached base packages: 
##[1] stats  graphics grDevices utils  datasets methods base 
+0

es verhält sich def anders auf meinem MacOS. tons Tonnen von Warnungen sogar mit 'read_delim (" Seitenaufrufe-20171001-010000.gz ", delim =" ", col_names = FALSCH, locale = locale (encoding =" UTF-8 "))' – hrbrmstr

+0

Ja, es gibt auch Warnungen unter das Ubuntu auch. – utubun

+0

Damit haben Sie 4.421.548 Ergebnisse, aber eigentlich sollte es 4.598.475 sein. – Linda

Verwandte Themen