将日期和月份转换为R中的年份(1-365)



假设我有一个包含两列的数据框架,一列表示月份,另一列表示天。下面是一个简单的示例

month=c(2, 4, ,7, 8, 11, 11, 12)
day=c(21,4,6,8,15,20,30)
monthday=data.frame(month,day)

我想确定一个数字(从1到365(,它对应于一年中的一天。我该怎么做?

您可以使用lubridate包中的yday函数:

library(dplyr)
library(tidyr)
library(lubridate)
month=c(2, 4,7, 8, 11, 11, 12)
day=c(21,4,6,8,15,20,30)
# also define a year so you can parse an actual date
year = 2021
monthday=tibble(month,day, year)
monthday %>% 
# combine into one variable
tidyr::unite("date", year, month, day, sep = "-", remove = FALSE) %>% 
# parse as date
dplyr::mutate(date = lubridate::ymd(date)) %>% 
# extract day of year
dplyr::mutate(doy = lubridate::yday(date))
#> # A tibble: 7 x 5
#>   date       month   day  year   doy
#>   <date>     <dbl> <dbl> <dbl> <dbl>
#> 1 2021-02-21     2    21  2021    52
#> 2 2021-04-04     4     4  2021    94
#> 3 2021-07-06     7     6  2021   187
#> 4 2021-08-08     8     8  2021   220
#> 5 2021-11-15    11    15  2021   319
#> 6 2021-11-20    11    20  2021   324
#> 7 2021-12-30    12    30  2021   364

创建于2021-05-31由reprex包(v2.0.0(

首先,您需要在"POSIXt"中提供年份并转换所有内容。那么我推荐:

as.numeric(strftime(date, format = "%j"))

相关内容

  • 没有找到相关文章

最新更新