在R中筛选timedate列
我是R的初学者,在R中有一个timedate列。 我有一个数据,它有多个列,其中一列有日期和时间在R中筛选timedate列,r,R,我是R的初学者,在R中有一个timedate列。 我有一个数据,它有多个列,其中一列有日期和时间 Originaltime magnitude depth 2017-01-10T16:42:23.247Z 4.6 18.8 1963-09-02T23:16:55.510Z 3.767 12 1963-08-29T16:46:25.520Z 3.727 12 我想使用originaltime
Originaltime magnitude depth
2017-01-10T16:42:23.247Z 4.6 18.8
1963-09-02T23:16:55.510Z 3.767 12
1963-08-29T16:46:25.520Z 3.727 12
我想使用originaltime列筛选数据,但仅使用year作为筛选条件
我试过:
b <- year(historiceventstbl$origintime)
head(b)
#[1] 2017 2017 2017 2017 2017 2017
我不确定,从这里怎么走 我们可以使用dplyr的过滤器
或者使用基R的子集
或者只使用基本R
操作时间时最好使用日期时间函数,因此
subset(df1, format(as.POSIXct(Originaltime, format = "%Y-%m-%dT%H:%M:%OS"), "%Y") == 1963)
# Originaltime magnitude depth
#2 1963-09-02T23:16:55.510Z 3.767 12
#3 1963-08-29T16:46:25.520Z 3.727 12
您也可以仅使用base R对数据执行此操作: 历史事件TBL[年度历史事件TBL$origintime==2017,]?
subset(df1, year(Originaltime)==1963)
subset(df1, sub("^(.{4}).*", "\\1", Originaltime)==1963)
# Originaltime magnitude depth
#2 1963-09-02T23:16:55.510Z 3.767 12
#3 1963-08-29T16:46:25.520Z 3.727 12
subset(df1, format(as.POSIXct(Originaltime, format = "%Y-%m-%dT%H:%M:%OS"), "%Y") == 1963)
# Originaltime magnitude depth
#2 1963-09-02T23:16:55.510Z 3.767 12
#3 1963-08-29T16:46:25.520Z 3.727 12
df[substring(as.character(df$Originaltime), 1, 4) == 2017,]
# Originaltime magnitude depth
#1 2017-01-10T16:42:23.247Z 4.6 18.8