【问题标题】:Extracting the Most Current Year from my Dataset?从我的数据集中提取最新的年份?
【发布时间】:2021-10-13 15:11:17
【问题描述】:

我正在尝试将我的数据集划分为 2 个单独的数据集 (data & data2)。 'Data' 包含今年(2021 年)的数据,而'Data2' 包含前几年的数据。

目前我有这段代码可以将当年的数据与上一年的数据分开:

data <- discrete_8 %>%  filter(PS_DATE >= as.POSIXct(paste0(substr(Sys.Date(),1,4),"-01-01")))#current year; filtered
data2 <- discrete_8 %>%  filter(PS_DATE < as.POSIXct(paste0(substr(Sys.Date(),1,4),"-01-01")) & PS_DATE > as.POSIXct("2013-12-31"))#previous year; filtered; remove year 2013


> as.POSIXct(paste0(substr(Sys.Date(),1,4),"-01-01"))
[1] "2021-01-01 UTC"

这正是我想要的,除非到2022年,否则我怕2022年的数据不可用,所以会产生错误。我正在考虑从我的数据集中提取最新的年份,这将是数据集中的最后一行。

> tail(discrete_8)
     PS_NAME Offline.Cell.Days Offline.CSPR..perfusion.    PS_DATE
6275 x1                34                0.5856000 2021-06-16
6288 x2                47                0.6412710 2021-06-29
6289 x3                48                0.5066250 2021-06-30
6303 x4                47                0.7241379 2021-06-29
6304 x5                48                0.5206612 2021-06-30
6305 x6                49                0.5358987 2021-07-01

有没有一种方法可以更改我的代码块,以便我实际上提取数据集中可用的最新年份,而不是使用Sys.Date() 来提取最新年份(目前没有失败证明)。

在我的一个数据集中,只有到 2020 年的数据,所以我的代码块在该脚本中不起作用。从最后一行数据中提取年份会更好。

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以在数据集中添加年份列并提取最大年份以获取最近一年的数据。

    library(dplyr)
    library(lubridate)
    
    discrete_8 <- discrete_8 %>% mutate(year = year(as.Date(PS_DATE)))
    data <- discrete_8 %>%  filter(year == max(year))
    data2 <- discrete_8 %>%  filter(year != max(year))
    

    【讨论】:

      【解决方案2】:

      我们可以使用

      library(dplyr)
      discrete_8_lst <- discrete_8 %>%
                       mutate(year = as.numeric(format(as.Date(PS_DATE), '%Y'))) %>%
                       group_split(grp = year == max(year))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-23
        • 2013-03-05
        相关资源
        最近更新 更多