【问题标题】:R: How to store date in a data.frame and prevent R from converting it to numbers?R:如何将日期存储在 data.frame 中并防止 R 将其转换为数字?
【发布时间】:2020-10-05 03:02:03
【问题描述】:
mydat <- data.frame(id = c(1, 1, 2), date_of_entry = c(NA, NA, NA))
mydate <- structure(17189, class = "Date")
> mydate
[1] "2017-01-23"

mydate 是一个date,我想用mydate 填充date_of_entry 列以获取id == 1。如果我尝试过:

mydat$date_of_entry[mydat$id == 1] <- mydate
> mydat
  id date_of_entry
1  1         17189
2  1         17189
3  2            NA

但是,我希望 date_of_entry 列包含实际日期,而不是 R 中日期的数字表示。我该怎么做?

【问题讨论】:

    标签: r dataframe date


    【解决方案1】:

    在分配值之前创建日期类的date_of_entry 列(当前它属于“逻辑”类)。

    mydat$date_of_entry <- as.Date(mydat$date_of_entry)
    mydat$date_of_entry[mydat$id == 1] <- mydate
    mydat
    
    #  id date_of_entry
    #1  1    2017-01-23
    #2  1    2017-01-23
    #3  2          <NA>
    

    此外,这些数字是日期的数字表示形式,因此您也可以将它们从数字转换为日期。

    #dataframe
    mydat <- data.frame(id = c(1, 1, 2), date_of_entry = c(NA, NA, NA))
    #date converted to number
    mydat$date_of_entry[mydat$id == 1] <- mydate
    #convert it back to date
    mydat$date_of_entry <- as.Date(mydat$date_of_entry)
    

    【讨论】:

      猜你喜欢
      • 2021-03-21
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      • 2022-06-30
      • 2018-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多