2016-05-31 59 views
0

我是R新手,所以请帮我弄清楚下面的问题。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

你可以从重塑包尝试投功能

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得到你想要的结果
cast(my_data,Year~Month,value="Frequency")