是否有将单个日期更改为不同日期的R函数

  • 本文关键字:日期 函数 单个 是否 r date
  • 更新时间 :
  • 英文 :


我是R的新手,请耐心等待。我注意到我的数据集中有一个日期是错误的,我想更改它。以下是数据集中的一小部分数据作为示例。

admission2(dttm( time_lorazepam2(dttm
2015-08-05 01:52:00 2015-08-05 02:57:00 65
2015-08-17 02:00:00 2015-08-17 01:26:00 -34
2016-02-25 18:59:00 2016-02-25 20:15:00 76

假设这是您的数据(此处admission2time_lorazepam2已经是日期时间格式(:

library(dplyr)
library(tibble)
dat <- tribble(~ admission2, ~ time_lorazepam2, ~admission_to_lorazepam,
"2015-08-05 01:52:00",   "2015-08-05 02:57:00", 65,
"2015-08-17 02:00:00",   "2015-08-17 01:26:00",  -34,
"2016-02-25 18:59:00",   "2016-02-25 20:15:00",  76
) %>% mutate(across(c(admission2, time_lorazepam2), as.POSIXct))
dat
#> # A tibble: 3 x 3
#>   admission2          time_lorazepam2     admission_to_lorazepam
#>   <dttm>              <dttm>                               <dbl>
#> 1 2015-08-05 01:52:00 2015-08-05 02:57:00                     65
#> 2 2015-08-17 02:00:00 2015-08-17 01:26:00                    -34
#> 3 2016-02-25 18:59:00 2016-02-25 20:15:00                     76

我想你想做:

dat %>% mutate(admission2 = if_else(admission2 == as.POSIXct("2015-08-17 02:00:00"),
as.POSIXct("2015-08-17 01:26:00"),
admission2))
#> # A tibble: 3 x 3
#>   admission2          time_lorazepam2     admission_to_lorazepam
#>   <dttm>              <dttm>                               <dbl>
#> 1 2015-08-05 01:52:00 2015-08-05 02:57:00                     65
#> 2 2015-08-17 01:26:00 2015-08-17 01:26:00                    -34
#> 3 2016-02-25 18:59:00 2016-02-25 20:15:00                     76

要保存,您可以添加条件admission_to_lorazepam < 0,以真正只更改admission"2015-08-17 02:00:00"admission_to_lorazepam为负数的行:

dat %>% mutate(admission2 = if_else(admission2 == as.POSIXct("2015-08-17 02:00:00") & admission_to_lorazepam < 0,
as.POSIXct("2015-08-17 01:26:00"),
admission2))
#> # A tibble: 3 x 3
#>   admission2          time_lorazepam2     admission_to_lorazepam
#>   <dttm>              <dttm>                               <dbl>
#> 1 2015-08-05 01:52:00 2015-08-05 02:57:00                     65
#> 2 2015-08-17 01:26:00 2015-08-17 01:26:00                    -34
#> 3 2016-02-25 18:59:00 2016-02-25 20:15:00                     76

或者你可以用负admission_to_lorazepam:更改所有日期

dat %>% mutate(admission2 = if_else(admission_to_lorazepam < 0,
time_lorazepam2 ,
admission2))
#> # A tibble: 3 x 3
#>   admission2          time_lorazepam2     admission_to_lorazepam
#>   <dttm>              <dttm>                               <dbl>
#> 1 2015-08-05 01:52:00 2015-08-05 02:57:00                     65
#> 2 2015-08-17 01:26:00 2015-08-17 01:26:00                    -34
#> 3 2016-02-25 18:59:00 2016-02-25 20:15:00                     76

创建于2022-07-29由reprex包(v2.0.1(

最新更新