如何将yyyy-mm-dd转换为R中的一年中的某天?

Sof*_*fea 5 r date

我试图将我的数据转换为不同的日期格式.

例如,从2010-12-31到2010365

我尝试了下面的代码,但它给了我一些不同的东西(例如359 360 361 362 363 364 365).我有2000年到2010年的数据.

dayofyear <- strptime(date, format="%Y-%m-%d")$yday + 1
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

非常感谢.

Jus*_*tin 16

在基地r:

format(as.Date('2010-12-31'), format='%Y%j')
Run Code Online (Sandbox Code Playgroud)

要么:

strftime('2010-12-31', format='%Y%j')
Run Code Online (Sandbox Code Playgroud)


Hen*_*rik 5

library(lubridate)
date <- ymd("2010-12-31")
paste0(year(date), yday(date))
# [1] "2010365" 
Run Code Online (Sandbox Code Playgroud)

  • 没有安装新库,可以看看我的答案. (5认同)

TMS*_*TMS 5

d <- as.POSIXlt("2010-12-31", format="%Y-%m-%d")
d$yday + 1
# 365
paste0(1900 + d$year, d$yday + 1)
# 2010365
Run Code Online (Sandbox Code Playgroud)

更新:从txt文件中读取:

t <- read.table(file = "file.txt", header = TRUE, sep = ";", dec = ",") 
    # make settings according to file format
Run Code Online (Sandbox Code Playgroud)

然后你可以通过t$column_name或访问列值t[,column_number],并用这些表达式中的一个替换"2010-12-31",就是这样.