2016-05-31 4 views
0

Я новичок в R. Поэтому, пожалуйста, помогите мне разобраться в следующей проблеме.Данные reshape in R

Мои данные следующие.

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

Я хочу, чтобы выяснить следующие таблицы из приведенных данных

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

Можно ли в R?

ответ

1

Мы можем попробовать

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

Вы можете попробовать функцию произнесения из пакета RESHAPE

library("reshape") 
формат данных для того, чтобы должным образом хранить в таблице данных
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))] 
использование литой для получения нужного результата
cast(my_data,Year~Month,value="Frequency") 
Смежные вопросы