2016-05-31 11 views
0

Ich bin neu in R. Also bitte helfen Sie mir das folgende Problem herauszufinden.Daten umformen in R

Meine Daten sind wie folgt.

> CheckIn - ID 
> 2016/Jan/1 - 100 
> 2016/Feb/1 - 100 
> 2014/Jan/1 - 100 
> 2014/Jan/1 - 101 
> 2015/Feb/1 - 100 

Ich möchte von oben Daten folgenden Tabellen, um herauszufinden,

 Jan - Feb - Mar 
2014 2 - 0 - 0 
2015 0 - 1 - 0 
2016 1 - 1 - 0 

Ist es möglich, in R?

Antwort

1

Wir versuchen

library(data.table) 
setDT(df1)[, c("Year", "Month") := {dt <- as.Date(CheckIn, "%Y/%b/%d"); list(format(dt, "%Y"), format(dt, "%b"))}] 
dcast(df1, Year~Month, value.var="ID", length) 
0

Sie können die CAST-Funktion aus dem reshape Paket

library("reshape") 
Format die Daten, um versuchen, richtig
my_data=data.table(CheckIn=c("2016/Jan/1","2016/Feb/1","2014/Jan/1","2014/Jan/1","2015/Feb/1"),ID=c("100","100","100","101","100")) 
my_data[,"Year":=substr(CheckIn,1,4)] 
my_data[,"Month":=substr(CheckIn,6,8)] 
my_data[,"Frequency":=as.numeric(substring(CheckIn,10))] 
Verwendung Guss in einer Datentabelle gespeichert werden um das gewünschte Ergebnis zu erhalten
cast(my_data,Year~Month,value="Frequency")