2017-08-30 2 views
0

Wenn eine Datumsspalte zwei verschiedene Formate enthält, gibt es eine Möglichkeit, beide zu analysieren, sodass ich 2 Zeilen vom 2012-04-01 anstelle des Ergebnisses unten erhalte?Lesen von Daten im gemischten Format

# A tibble: 2 x 1 
     date 
     <date> 
1 2012-04-01 
2   NA 

**Example Code** 
library(tidyverse) 
data <- read_csv("date\n01/04/12\n41000", col_types = cols_only("date" = col_date("%d/%m/%y"))) 
head(data) 
+0

Sie möchten '41000' als gültiges Datum analysieren? Hm. –

+0

Schauen Sie in 'lubridate' und' parse_date_time'. Etwas wie 'parse_date_time (x, c (% Y-% m-% d',% Y /% m /% d'), exact = TRUE)' könnte funktionieren. Ansonsten lesen Sie Ihre Datumsspalte als Zeichen und ' dplyr :: muate' – CPak

+0

Dirk, ja, es ist ein Format, das von Excel als die Anzahl der Tage seit dem Ursprung erkannt wird. Und Excel übersetzt beide oben als 1/4/12 – Carl

Antwort

0

Diese Lösung, wenn auch vielleicht nicht die eleganteste Lösung scheint zu funktionieren:

library(tidyverse) 
library(lubridate) 
data <- read_csv("date,text\n01/04/12,a\n41000,b\n02/02/13,c") 
data <- data %>% 
    mutate(date1 = as_date(as.numeric(date), origin = "1899-12-30")) %>% 
    mutate(date2 = as_date(date, "%d/%m/%y")) %>% 
    mutate(date3 = if_else(is.na(date1), date2, date1)) 
head(data) 
0

Statt ein Datum Datentyp erzwingen, während die Daten lesen, können Sie so etwas wie unten probieren:

data <- read_csv("date\n01/04/12\n41000") 
data %>% mutate(date =ifelse(is.numeric(date), as.Date(date, origin = "1990-01-01"), date)) 
+0

Vielen Dank Shaojl7.Ich werde es versuchen heute Abend. – Carl

+0

Es passiert zufällig mit den zwei Daten in meinem Beispiel, wie sie auf das gleiche Datum übersetzen, aber wenn ich ein drittes anderes Datum hinzufüge, bekomme ich das erste Datum wiederholt Daten <- read_csv ("date \ n01/04/12 \ n41000 \ n02/05/13 ") – Carl

+0

Das hat mich auf den richtigen Kurs gebracht, also vielen Dank dafür. Mit ein paar Feinabstimmungen habe ich es durch die separate Antwort geschafft. – Carl

Verwandte Themen