2017-04-14 79 views
0

我有這樣的數據幀的轉換日期欄月份和月份的一天,新的一列

dat <- read.table(text = " count  date  
           0 10/05/2012 
           1 10/05/2013 
           1 10/05/2014 
            ",header = TRUE) 

我想有一個新的變量將包含以下格式:

> dat 
    count  date DayMonth 
1  0 10/05/2012 10-05 
2  1 10/05/2013 10-05 
3  1 10/05/2014 10-05 

我嘗試了一些類似dat$DayMonth<-strptime(dat$date, "%d/%m")這樣的strptime函數的版本,但得到了奇怪的結果。 我怎樣才能獲得期望的結果

+1

我想知道,爲什麼downvote?這是正確的輸入和輸出的合理問題。 – mql4beginner

回答

1

我們可以as.Date做到這一點,format

dat$DayMonth <- format(as.Date(dat$date, "%d/%m/%Y"), "%d-%m") 
dat$DayMonth 
#[1] "10-05" "10-05" "10-05" 

使用strptime轉換爲POSIXlt/POSIXct類,從中我們可以改變的格式使用format

注意:沒有使用外部包裝

+1

謝謝@akrun – mql4beginner

2

相同解決方案使用包裝lubridateanydate

library(lubridate) 
dat$DayMonth <- format(dmy(dat$date), "%d-%m") 

# dmy stands for day,month,year, can you use ymd etc. 

library(anytime) 
dat$DayMonth <- format(anydate(dat$date), "%d-%m") 
相關問題