2017-06-29 2 views
0

Ich las in einer sas7bdat Datei mit dem haven Paket. Eine Spalte enthält Daten im YYQ6. Format.konvertieren SAS Datumsformat in R

I R wird in Zahlen wie -5844, 0, 7121, .. konvertiert. Wie kann ich dies in ein Jahresformat konvertieren? Ich habe keinen Zugriff auf SAS, aber diese Werte sollten Geburtsdaten sein.

+1

Wie können Sie vierteljährliche Geburtsdaten haben? –

+0

Der Spaltentyp ist nur an der Visualisierung der Daten beteiligt. Aber vielleicht wollen sie wissen, wie viele Menschen in jedem Vierteljahr geboren wurden ... Wer weiß? – Umberto

+0

@DirkNachbar Es ist ein medizinischer Datensatz, wo die genauen Geburtsdaten aus Datenschutzgründen geblendet wurden. – spore234

Antwort

2

wenig Forschung tun. SAS verwendet als Null 1. Januar 1960 (siehe http://support.sas.com/publishing/pubcat/chaps/59411.pdf) so, wenn Sie das Jahr der Daten (vertreten durch Ihre Nummer) wollen es

sein sollte
format(as.Date(-5844, origin="1960-01-01"),"%Y") 

und Sie erhalten in diesem Fall

1944 

Ist das korrekt? ist was du erwartest?

Um mehr über den Datentyp YYQ6 zu erfahren. Diese Unterstützung überprüfen Artikel von SAS

http://support.sas.com/documentation/cdl/en/leforinforref/64790/HTML/default/viewer.htm#n02xxe6d9bgflsn18ee7qaachzaw.htm

Lassen Sie mich wissen, ob funktioniert.

Umberto

1

ich in SAS Daten denken, sind Tage von 1960.01.01, so können Sie zunächst

sasq <- c(-5844, 0, 7121) 
as.Date(sasq, '1960-01-01') 
[1] "1944-01-01" "1960-01-01" "1979-07-01" 
+0

Sie haben Recht. Termine in SAS sind vom 1. Januar 1960 ;-) – Umberto

Verwandte Themen