2015-06-25 50 views
0

考慮,裂棗爲年和月在data.table

set.seed(1234) 
library(data.table) 
dt <- data.table(date=c(201405, 201406, 201501, 201503), x = rnorm(4, 0, 1)) 

回報,

 date   x 
1: 201405 -1.2070657 
2: 201406 0.2774292 
3: 201501 1.0844412 
4: 201503 -2.3456977 

我想日期分成年份和月份如下:

year month   x 
1: 2014  5 -1.2070657 
2: 2014  6 0.2774292 
3: 2015  1 1.0844412 
4: 2015  3 -2.3456977 

我怎樣才能做到這一點?

+4

這不只是'''DT [':='(年= SUBSTR(日期,1,4),月= substr(date,5,6))]'''?不知道這個'data.table'具體如何。如果你喜歡,你可以在那裏包裝'as.integer'。 –

回答

0

轉換評論一個答案,你可以簡單地通過參看語義使用substr分配相結合。你可以把它包裝成as.integer,如果你喜歡它不返回一個字符串

dt[, `:=`(year = substr(date, 1L, 4L), month = substr(date, 5L, 6L))] 
-1

你可以用這個 - >

dt$month=as.integer(substr(dt$date,5,6)) 
dt$year=substr(dt$date,1,4)  
dt 
date    x month year 
1: 201405 -1.2070657  5 2014 
2: 201406 0.2774292  6 2014 
3: 201501 1.0844412  1 2015 
4: 201503 -2.3456977  3 2015