首页 > 解决方案 > 根据最后一个反斜杠后的数字来处理某些数字变量

问题描述

在我的数据框中,我有一列包含日期。我已经转换为 DD/MM/YY 表示法的那些日期,现在我想知道我是否只能处理框架中的那些行,我的日期的 YY 等于特定数字。例如,我只想查看年份为 18 的行,但包括所有日期和月份。例子:

值 <- (3, 4, 5, 2)

日期 <- ("6/7/19"、"3/5/18"、"12/12/18"、"5/2/12")

框架 <- data.frame(值,日期)

现在,例如 frame[dates == "3/5/18", "values"] 会给我 4,但我想知道,如果我可以使用某个命令来定位所有有 18 的字符串代替括号中的年份。此外,稍后我想创建一个子帧,其中仅包含指定年份为 18 的那些行(400.000 个数据点),但我猜一旦我了解了如何处理该变量,这将起作用。

感谢您提前回答。任何帮助深表感谢。

标签: rdataframetimebackslash

解决方案


我建议使用包lubridate,因为它具有将时间戳转换为格式的便捷功能Date。使用dmy()(日-月-年的缩写)转换您的时间戳。下面是一个使用dplyr语法的例子:

library(lubridate)
library(dplyr)
DF <- data.frame(
  date = dmy(c("19/01/18", "12/05/18", "30/03/19")),
  dummydata = paste0("dummy", 1:3)
)

DF %>% 
  filter(year(date) == 2018)

推荐阅读