用于查找chr字符串开头的R函数



我正试图弄清楚如何显示2016年才发生的事件。该格式是chr格式,看起来像";2016-12-31";。有没有办法只搜索2016年的价值?

当前代码:

most_fatalities_2016 <- gun_violence[which(gun_violence$date == "2016"), select = c("state", "city_or_county")]

我想我正在寻找r函数,它的作用类似于SQL中的like函数。有什么帮助吗?

您可以简单地使用substr()grepl()

gun_violence[substr(gun_violence$date,1,4)=="2016",]

gun_violence[grepl("^2016-",gun_violence$date),]

上面返回了gun_violence数据帧的所有列。如果你只想返回特定的列,你可以这样指定这些列:

gun_violence[grepl("^2016-",gun_violence$date),c("state", "city_or_county")]

我可能比要求的要深入,但我想就数据的存储和操作方式给出一些建议。

如果我们事先将此字符变量转换为适当的日期格式,那么在下游分析中可能会容易得多。

建议#2:

dplyr包为数据帧的操作提供了非常清晰的语法,这可能是来自基于SQL的背景的一个很好的介绍。

建议#3:

理解和";逆向工程";dbplyr包(https://dbplyr.tidyverse.org/)可能对SQL经验丰富的用户有所启发

gun_violence$date <-readr::parse_date(gun_violence$date)

之后,我们可以使用许多与日期相关的功能,例如:

library(dplyr)
library(lubridate)
gun_violence %>% filter(date < today())
###
gun_violence %>% filter(year(date) == 2016) ### for the desired operation in the question
###
and so on

最新更新