我有一个数据集,里面有2003-2019年的每日价格数据。我想从中创建一个具有指定年份数据的子集,例如2011-2015年。我正在使用子集函数,但当我提到年份的间隔时,子集的数据只有7天中的1天,而不是所述年份的所有日子的数据。
sub <- subset(data, format(as.Date(data$Date),"%Y")==c(2011:2015))
我试过拆分函数,但那会创建一个数据框列表,我不知道如何在ggplot或统计分析中使用。
sub <- split(data, format(as.Date(data$Date),"%Y")==c(2011:2015))
是否有更好的方法来进行子集,使我能够提取我想要的年份的每日数据?
假设 Date
是标准格式的,你可以尝试用.NET技术。
sub_data <- subset(data, as.integer(format(as.Date(Date),"%Y")) %in% 2011:2015)
或者用 dplyr
和 lubridate
:
library(dplyr)
library(lubridate)
sub_data <- data %>% filter(year(ymd(Date)) %in% 2011:2015)