【问题标题】:How to Replace NA's in a Date Column如何替换日期列中的 NA
【发布时间】:2023-03-28 12:23:01
【问题描述】:

我的数据框中有一列包含日期,因此它是一个日期类。但是,当我尝试从该列中删除 NA 时,我不能,因为它不是字符类。所以我使用这个解决方案将它转换为字符类:

Setting to Blank

然后我仍然希望我的日期列是一个日期类,所以我使用as.Date 将它转换回来,但它会再次生成 NA。所以我陷入了这个循环。如果需要示例,我将在下次会议后添加。我想将 NA 转换为空白,因为我正在使用 rbind 到另一个没有 NA 的数据帧。

下面是我所指的代码:

> df1
        Date File
1 2016-10-20    1
2 2016-10-18    2
3       <NA>    3

> str(df1)
'data.frame':   3 obs. of  2 variables:
 $ Date: Date, format: "2016-10-20" "2016-10-18" NA
 $ File: chr  "1" "2" "3"

> df1 <- sapply(df1, as.character)

> df1[is.na(df1)] <- ""

> df1
     Date         File
[1,] "2016-10-20" "1" 
[2,] "2016-10-18" "2" 
[3,] ""           "3" 

> df1 <- as.data.frame(df1)

> df1$Date <- as.Date(df1$Date, format = "%Y-%m-%d")

> df1
        Date File
1 2016-10-20    1
2 2016-10-18    2
3       <NA>    3

所以我只想知道 df1[1,3] 是否可以是 Date 类并且是空白的。

【问题讨论】:

  • 拥有 NA 有什么问题?您应该可以rbind() 也可以在数据中使用 NA。
  • 我想我可以像你说的那样与 NA 进行 rbind,但我只想保持一致性,因为组合文件已连接到 Tableau,并且有基于该日期字段的计算字段。
  • Date 列中不能有空白值。空白是character 类。因此,要么将其保留为 character 列,要么习惯于 NAs
  • 我会习惯 NA 的,谢谢@DavidArenburg
  • NA 是你的朋友。学会爱它:)

标签: r na missing-data rbind as.date


【解决方案1】:

试试 na.omit(df1), 它将删除所有具有 NA 值的行..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-30
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 2016-05-24
    • 2021-04-27
    • 2020-04-07
    相关资源
    最近更新 更多