只是开发一些代码来从一个带有read_xlsx的Excel电子表格中导入每日数据,并按年和月进行汇总和求和。创建年和月列,然后使用strftime()用从日日期列中提取的字符年和月填充它们。发现它将1989和12放在年份和月份列中以表示1990-01-01的日期。一直往下,所有填满的年份& &;月退一天。
str(daily_dat)
data.frame': 11688 obs. of 3 variables:
$ day_date: POSIXct, format: "1990-01-01" "1990-01-02" ...
$ prcp_mm : num 0 14.99 4.06 0 0 ...
day_date prcp_mm
1990-01-01 0
1990-01-02 14.986
1990-01-03 4.064
1990-01-04 0
1990-01-05 0
1990-01-06 0
1990-01-07 0
1990-01-08 1.016
1990-01-09 0
1990-01-10 0
1990-01-11 0
1990-01-12 0
1990-01-13 0
1990-01-14 0
1990-01-15 0
1990-01-16 0
1990-01-17 0
1990-01-18 0
1990-01-19 6.858
1990-01-20 0
1990-01-21 0
1990-01-22 3.048
1990-01-23 2.032
1990-01-24 0
1990-01-25 0
1990-01-26 0
1990-01-27 0
1990-01-28 0
1990-01-29 0
1990-01-30 0
1990-01-31 0
1990-02-01 0
1990-02-02 0`
daily_1$year<-strftime(daily_1$day_date,"%Y")
daily_1$month<-strftime(daily_1$day_date,"%m")
head(daily_1,33)
day_date prcp_mm year month
1990-01-01 0 1989 12
1990-01-02 14.986 1990 1
1990-01-03 4.064 1990 1
1990-01-04 0 1990 1
1990-01-05 0 1990 1
1990-01-06 0 1990 1
1990-01-07 0 1990 1
1990-01-08 1.016 1990 1
1990-01-09 0 1990 1
1990-01-10 0 1990 1
1990-01-11 0 1990 1
1990-01-12 0 1990 1
1990-01-13 0 1990 1
1990-01-14 0 1990 1
1990-01-15 0 1990 1
1990-01-16 0 1990 1
1990-01-17 0 1990 1
1990-01-18 0 1990 1
1990-01-19 6.858 1990 1
1990-01-20 0 1990 1
1990-01-21 0 1990 1
1990-01-22 3.048 1990 1
1990-01-23 2.032 1990 1
1990-01-24 0 1990 1
1990-01-25 0 1990 1
1990-01-26 0 1990 1
1990-01-27 0 1990 1
1990-01-28 0 1990 1
1990-01-29 0 1990 1
1990-01-30 0 1990 1
1990-01-31 0 1990 1
1990-02-01 0 1990 1
1990-02-02 0 1990 2
str(daily_1)
'data.frame': 11688 obs. of 4 variables:
$ day_date: POSIXct, format: "1990-01-01" "1990-01-02" ...
$ prcp_mm : num 0 14.99 4.06 0 0 ...
$ year : chr "1989" "1990" "1990" "1990" ...
$ month : chr "12" "01" "01" "01" ...
搞什么鬼?
不用strftime
,试试daily_1$month <- format(daily_1$day_date, '%m')