你好,我的問題是:我有一個列,每月,季度和年如轉換列值
Time
2017 Q1
2017 Q2
2017
2016
Mar-07
Apr-07
我想創造另一列這樣的:如果是一個月,那麼它應該成爲月2015年3月1日的第一天,如果是一年它建議立即進行刪除成爲了第一天如果是季度1那麼2017-01-01,如果是季度2那麼2017-04-01,如果季度3那麼2017-07-01,如果季度4那麼2017-10 -2017。謝謝
你好,我的問題是:我有一個列,每月,季度和年如轉換列值
Time
2017 Q1
2017 Q2
2017
2016
Mar-07
Apr-07
我想創造另一列這樣的:如果是一個月,那麼它應該成爲月2015年3月1日的第一天,如果是一年它建議立即進行刪除成爲了第一天如果是季度1那麼2017-01-01,如果是季度2那麼2017-04-01,如果季度3那麼2017-07-01,如果季度4那麼2017-10 -2017。謝謝
希望這有助於!
library(zoo)
df <- data.frame(time=c("2017 Q1", "2017 Q2", "2017", "2016", "Mar-07", "Apr-07"))
df$time <- sapply(df$time, function(x)gsub("^[a-zA-Z]{3}-\\d{2}$",as.Date(paste0('01-', x), format='%d-%b-%y'),x))
df$time <- sapply(df$time, function(x)gsub("^\\d{4}$",as.Date(paste0('01-01-', x), format='%d-%m-%Y'),x))
df$time <- sapply(df$time, function(x)gsub("^\\d{4}\\s\\w{2}$",as.Date(as.yearqtr(x, format = "%Y Q%q")),x))
df
輸出是:
time
2017-01-01
2017-04-01
2017-01-01
2016-01-01
2007-03-01
2007-04-01
不要忘了讓我們知道是否能解決你的問題:)
,想必,你用什麼軟件來做到這一點? – hd1
「動物園」包將有所幫助。請參閱https://stackoverflow.com/questions/31071733/convert-quarter-year-format-to-a-date – Jean