你好,我的问题是:我有一个列,每月,季度和年如转换列值
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