gpt4 book ai didi

r - 如何在不自己修复日期的情况下获得日期无效的年份和月份?

转载 作者:行者123 更新时间:2023-12-04 10:28:08 25 4
gpt4 key购买 nike

我有一些看起来像这样的数据:

require(zoo)

X <- rbind(c(date='20111001', fmt='%Y%m%d'),
c('20111031', '%Y%m%d'),
c('201110', '%Y%m'),
c('102011', '%m%Y'),
c('31/10/2011', '%d/%m/%Y'),
c('20111000', '%Y%m%d'))
print(X)

# date fmt
# [1,] "20111001" "%Y%m%d"
# [2,] "20111031" "%Y%m%d"
# [3,] "201110" "%Y%m"
# [4,] "102011" "%m%Y"
# [5,] "31/10/2011" "%d/%m/%Y"
# [6,] "20111000" "%Y%m%d"

我只想要年和月。我不需要那天,所以我不担心最后一天无效。不幸的是,R 是:
mapply(as.yearmon, X[, 'date'], X[, 'fmt'], SIMPLIFY=FALSE)

# $`20111001`
# [1] "Oct 2011"

# $`20111031`
# [1] "Oct 2011"

# $`201110`
# [1] "Oct 2011"

# $`102011`
# [1] "Oct 2011"

# $`31/10/2011`
# [1] "Oct 2011"

# $`20111000`
# Error in charToDate(x) :
# character string is not in a standard unambiguous format

我知道通常的答案是修复日期的日期部分,例如使用 paste(x, '01', sep='') .我认为这在这里行不通,因为我事先不知道日期格式是什么,因此如果不先转换为某种日期对象,我就无法设置日期。

最佳答案

假设月份总是跟在年份之后,并且在您的 date 中总是两个字符。 .为什么不直接用 substr 提取信息.也许是这样的:

lapply(X[,'date'], 
function(x) paste(month.abb[as.numeric(substr(x, 5, 6))], substr(x, 1, 4))
)

关于r - 如何在不自己修复日期的情况下获得日期无效的年份和月份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7707977/

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