2016-05-13 3 views
-2

Ich schreibe ein Skript, um Informationen von Baseball-Referenz-Webseiten zu erhalten. Das erste Mal, als ich den Code schrieb, funktionierte es gut und alle Daten, die als Faktoren gespeichert wurden, wurden korrekt mit der Funktion as.Date() analysiert. Dennoch lief ich einen Tag später das gleiche Skript und ich bekomme "NAs" in einigen Daten einer Variablen und andere wurden gut konvertiert. Es gibt eine weitere Faktorvariable, bei der alle als "NA" zurückgegeben werden.mit as.Date() um Daten als Faktoren zu konvertieren geben Sie "NA" s für einige Ergebnisse

Ich habe darüber geschaut, aber ich konnte nur Probleme über "NA" wegen fehlender Tage auf dem Wert (nur Monat und Jahr) gefunden.

Ich habe versucht, auch die sys.setlocale von Portugal nach US (LC_ALL“,‚Englisch‘) zu ändern, aber ich bekomme das gleiche Ergebnis.

Th Skript I verwendet wird. Haben Sie einen Hauch von was fehlt

Dank

library(XML) 
Sys.setlocale("LC_ALL","English") # Used after first attempt 


# Web page with players 
url = "http://www.baseball-reference.com/bio/Venezuela_born.shtml" 

# Create a List of the data-frames found in the Web Page, and define the type of colum data 
url_Tables = readHTMLTable(url 
          ,stringAsFactors = FALSE 
          ,colClasses=c("integer","character",rep("integer",17) 
             ,rep("numeric", 4),"factor","factor" 
             , "character", "character") 
         ) 

# Assign First table of the Web Page to a Data.Frame 
batting = url_Tables[[1]] 

summary(batting) 

# Change the type of some colunms 
batting$Birthdate = as.Date(batting$Birthdate, "%b %d, %Y") # For this column some of the values are parsed OK and others not (NAs). 
batting$Debut = as.Date(batting$Debut, "%b %d, %Y")  # For this column all the values are converted as "NA"s 
+1

Warum repräsentieren Sie "Date" Objekte als "Faktor" in erster Linie? – nrussell

+0

Ich kann Ihren Code nicht reproduzieren. Bitte versuchen Sie das Ergebnis von 'dput (batting)' zu Ihrer Frage hinzuzufügen. –

+0

Ich kann den Code reproduzieren, aber nicht den Fehler. Alle Daten, "Batting $ Birthdate" und "Batting $ Debut" sind in Ordnung auf meinem System. Es gibt keinen NA-Wert. – RHertel

Antwort

0

Versuch und lubridate, verwenden Paket zu installieren für alle Datum Zeiten Operationen sehr nützlich:.

library(lubridate) 
mdy(batting$Debut) 
Verwandte Themen