【问题标题】:Change the value of a date in a data frame in R在R中更改数据框中的日期值
【发布时间】:2021-10-29 05:05:55
【问题描述】:

我有一个名为 df 的数据框,如下所示:

ID      DATE           RAIN
79001   2013-11-28      2.0
79001   2013-11-29      34.0
79001   2013-11-30      3.0
79002   2013-10-09      17.2
79002   2013-10-10      5.0
79002   2013-10-11      12.0
79003   2013-10-14      14.8
79003   2013-10-15      4.8
79003   2013-10-16      0

数据有错误,比如ID 79001的月份有误,应该是9月而不是11月。如何将日期从 2013-11-28 固定到 2013-09-28 ? 我尝试了以下方法:

df[df$DATUM == "2013-11-28"] <- "2013-09-28"

然而,这似乎不是一个好方法,而且它不起作用。 我想过将Date转换为字符然后更改值,但我不知道它是否有效,如果有效,该怎么做

感谢您的帮助

非常感谢

【问题讨论】:

  • df[df$DATUM == as.Date("2013-11-28"), "DATUM"] &lt;- as.Date("2013-09-28")?
  • 输入df2 &lt;- edit(df),会弹出一个电子表格,您可以在其中更改值。
  • 非常感谢,只是一个小问题,如果我只想从 ID 79001 更改日期,我该怎么办? (比方说,在我的数据框中,我有几个日期为 2013-11-28 并且它们都是正确的,只是 ID 79001 是错误的)?

标签: r dataframe date


【解决方案1】:
df <- read.table(textConnection('ID      DATE           RAIN
79001   2013-11-28      2.0
79001   2013-11-29      34.0
79001   2013-11-30      3.0
79002   2013-10-09      17.2
79002   2013-10-10      5.0
79002   2013-10-11      12.0
79003   2013-10-14      14.8
79003   2013-10-15      4.8
79003   2013-10-16      0'),header=T)

df$DATE <- as.Date(df$DATE)

df[df$DATE == "2013-11-28",]$DATE <- as.Date("2013-09-28")

df

输出;

 ID DATE        RAIN
  <int> <date>     <dbl>
1 79001 2013-09-28   2  
2 79001 2013-11-29  34  
3 79001 2013-11-30   3  
4 79002 2013-10-09  17.2
5 79002 2013-10-10   5  
6 79002 2013-10-11  12  
7 79003 2013-10-14  14.8
8 79003 2013-10-15   4.8
9 79003 2013-10-16   0  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 2020-07-18
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多