【问题标题】:How do I change dates to strings in R?如何将日期更改为 R 中的字符串?
【发布时间】:2021-05-15 18:00:09
【问题描述】:

我有大量的日期与时间。我想根据日期将其更改为大流行之前的“BP”和大流行之后的“AP”。 2020-04-20 之后的任何日期都是 AP,之前的任何日期都是 BP。

我尝试使用gsub 来更改它和ifelse 功能,但没有奏效。

日期的格式是yyyy-mm-ddhh-mm-ss。类型为 double。

【问题讨论】:

标签: r string date types


【解决方案1】:
my_data <- data.frame(
  date = as.POSIXct(c(
  "2020-04-01 12:34:56",
  "2020-04-21 01:23:45"))
)
my_data
#>                  date
#> 1 2020-04-01 12:34:56
#> 2 2020-04-21 01:23:45

# create a new variable called pandemic
my_data$pandemic = ifelse(my_data$date >= as.POSIXct("2020-04-20 00:00:00"),
                          "AP",
                          "BP")
my_data
#>                  date pandemic
#> 1 2020-04-01 12:34:56       BP
#> 2 2020-04-21 01:23:45       AP

或者如果你真的想覆盖date 列并更改为字符类型,请使用:

my_data$date = ifelse(my_data$date >= as.POSIXct("2020-04-20 00:00:00"),
                     "AP", "BP")
my_data
#>   date
#> 1   BP
#> 2   AP

【讨论】:

  • 根据数据集的大小,fasttimeanytimelubridate 包可能有用!
  • Jon 在代码 my_data$pandemic &lt;- ifelse(... 中创建了一个名为 pandemic 的新变量,另请参阅 data.frames 的基本用法(美元符号访问 data.frame 中的变量)。
  • @David 所以我对$ 的理解就像你说的它访问数据框中的一个变量。但是根据您所说的my_data$pandemic 创建了该新变量。我是不是误会了?
  • 没错!另请参阅 data.frames 上的 R-tutor。如果您更频繁地处理 data.frames(或更大的数据帧),您可能还想查看 data.tabledplyr
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2019-06-18
  • 2020-09-13
  • 2017-06-07
  • 2018-12-08
  • 2013-08-16
相关资源
最近更新 更多