gpt4 book ai didi

r - 使用 R 将字符串转换为日期

转载 作者:行者123 更新时间:2023-12-03 19:09:09 29 4
gpt4 key购买 nike

我有一列日期写为月年,格式如下:
11960 - 这将是 1960 年 1 月
121960 - 这将是 1960 年 12 月
我想将此列转换为日-月-年格式,假设每个月的第一天都是日期。
我试过(以一个数字为例,而不是 dt$dob)
x <- sprintf("%08d%", 11960)
然后 x <- as.date(x, format = "%d%m%Y)
但这给了我 NA,因为我认为它不喜欢一开始的 00
所以我尝试将 01 粘贴到每个值,但这会将其粘贴到最后(此处为 R noob)。我在想也许将 01 发布到开始然后使用 sprintf 函数可能仍然有效:

  • 将 01 粘贴到 11960 的开头 = 011960
  • sprintf("%08d%", 011960) 可能会给出 0101960?
  • 然后用as.Date来转换?

  • 非常感谢您的帮助

    最佳答案

    我使用了 paste0() 而不是 sprintf,但它似乎有效。

    > x<-paste0("010",11960)
    > x
    [1] "01011960"
    > as.Date(x , format = "%d%m%Y" )
    [1] "1960-01-01"


    编辑 2 位数月份我使用 ifelse() 和 nchar()
    y<-c(11960,11970,11980, 111960,111970,111980)
    x<-ifelse(nchar(y) == 5,paste0("010",y),paste0("01",y))

    > x
    [1] "01011960" "01011970" "01011980" "01111960" "01111970" "01111980"

    as.Date(x , format = "%d%m%Y" )
    [1] "1960-01-01" "1970-01-01" "1980-01-01" "1960-11-01" "1970-11-01" "1980-11-01"

    关于r - 使用 R 将字符串转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62819688/

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