如何使用通配符按日期进行子集化?
How can I subset by date, using a wild card?
我有一个数据框:
$Date, $name, $value
1949-05-01, Hurricane, 5
1950-02-01, Hurricane, 6
1950-03-01,
1950-04-01,
1950-05-01,
1951-02-01,
1951-03-01,
1951-04-01,
这些日期一直到 2015 年,测量值为 02、03、04 和 05 月。我正在尝试创建一个数据框或此数据的子集,其中仅包含四月 (04) 的行).我尝试了一些代码,例如
aprilSWE <- hurricane.df[grep("^04", hurricane.df$Date),]
但我不确定我是否正确使用了^
。由于月份“04”位于日期字符串的中间,我如何使用通配符 select 任何以月份“04”作为日期的行?
谢谢!
尝试
hurricane.df[grep('^\d{4}-04', hurricane.df$Date),]
或转换为'Date' class并使用format
hurricane.df[format(as.Date(hurricane.df$Date), '%b'=='Apr',]
您不应该为此使用字符串处理。使用 Date
class:
DF <- read.table(text = "Date, name, value
1949-05-01, Hurricane, 5
1950-02-01, Hurricane, 6
1950-03-01, Hurricane, 7
1950-04-01, Hurricane, 8
1950-05-01, Hurricane, 9
1951-02-01, Hurricane, 10
1951-03-01, Hurricane, 11
1951-04-01, Hurricane, 12", header = TRUE, sep =",")
DF$Date <- as.Date(DF$Date)
DF[months(DF$Date) == "April",]
# Date name value
#4 1950-04-01 Hurricane 8
#8 1951-04-01 Hurricane 12
我有一个数据框:
$Date, $name, $value
1949-05-01, Hurricane, 5
1950-02-01, Hurricane, 6
1950-03-01,
1950-04-01,
1950-05-01,
1951-02-01,
1951-03-01,
1951-04-01,
这些日期一直到 2015 年,测量值为 02、03、04 和 05 月。我正在尝试创建一个数据框或此数据的子集,其中仅包含四月 (04) 的行).我尝试了一些代码,例如
aprilSWE <- hurricane.df[grep("^04", hurricane.df$Date),]
但我不确定我是否正确使用了^
。由于月份“04”位于日期字符串的中间,我如何使用通配符 select 任何以月份“04”作为日期的行?
谢谢!
尝试
hurricane.df[grep('^\d{4}-04', hurricane.df$Date),]
或转换为'Date' class并使用format
hurricane.df[format(as.Date(hurricane.df$Date), '%b'=='Apr',]
您不应该为此使用字符串处理。使用 Date
class:
DF <- read.table(text = "Date, name, value
1949-05-01, Hurricane, 5
1950-02-01, Hurricane, 6
1950-03-01, Hurricane, 7
1950-04-01, Hurricane, 8
1950-05-01, Hurricane, 9
1951-02-01, Hurricane, 10
1951-03-01, Hurricane, 11
1951-04-01, Hurricane, 12", header = TRUE, sep =",")
DF$Date <- as.Date(DF$Date)
DF[months(DF$Date) == "April",]
# Date name value
#4 1950-04-01 Hurricane 8
#8 1951-04-01 Hurricane 12