gpt4 book ai didi

r - 在年之前添加月份

转载 作者:行者123 更新时间:2023-12-05 04:21:40 25 4
gpt4 key购买 nike

有这样的数据框:

d1 <- data.frame(id = c(1,2,3),
date1 = c("2014-2018","Jun 2009-2010","Jan 2009-Aug 2010"),
date2 = c("Feb 2016-2018","2014-Dec 2018","Oct 2013-Dec 2018"))
# id date1 date2
# 1 1 2014-2018 Feb 2016-2018
# 2 2 Jun 2009-2010 2014-Dec 2018
# 3 3 Jan 2009-Aug 2010 Oct 2013-Dec 2018

如果只有年份,如何添加月份。更具体地说,如果年份在“-”之前,则添加 Jan,如果年份在“-”之后,则添加 Dec。

data.frame(id = c(1,2,3),
date1 = c("Jan 2014-Dec 2018","Jun 2009-Dec 2010","Jan 2009-Aug 2010"),
date2 = c("Feb 2016-Dec 2018","Jan 2014-Dec 2018","Oct 2013-Dec 2018"))
# id date1 date2
# 1 1 Jan 2014-Dec 2018 Feb 2016-Dec 2018
# 2 2 Jun 2009-Dec 2010 Jan 2014-Dec 2018
# 3 3 Jan 2009-Aug 2010 Oct 2013-Dec 2018

最佳答案

您可以使用 gsub 两次。当字符串以(^) 开头为4 位时,在前面添加Jan ,当以- 结尾,后跟4 位时,添加-Dec 在数字之前。

f <- function(x) {
gsub("^(\\d{4})", "Jan \\1", x) |>
gsub("-(\\d{4})$", "-Dec \\1", x = _)
}

输出

d <- data.frame(id = c(1,2,3), date1 = c("2014-2018","Jun 2009-2010","Jan 2009-Aug 2010"), date2 = c("Feb 2016-2018","2014-Dec 2018","Oct 2013-Dec 2018"))

d[2:3] <- sapply(d[2:3], f)

id date1 date2
1 1 Jan 2014-Dec 2018 Feb 2016-Dec 2018
2 2 Jun 2009-Dec 2010 Jan 2014-Dec 2018
3 3 Jan 2009-Aug 2010 Oct 2013-Dec 2018

关于r - 在年之前添加月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74177896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com