programing

날짜로부터 연도 추출

javajsp 2023. 7. 8. 10:36

날짜로부터 연도 추출

특히 이 변수에 특수 문자가 있는 경우 변수에서 첫 번째 요소를 제거하려면 어떻게 해야 합니까?예를 들어, 다음과 같은 열이 있습니다.

Date
01/01/2009
01/01/2010
01/01/2011
01/01/2012

다음과 같은 새 열이 필요합니다.

Date
2009
2010
2011
2012

의견에서 논의된 바와 같이, 이는 항목을 다음으로 변환하여 달성할 수 있습니다.Date예를 들어 다음과 같이 연도를 포맷하고 추출합니다.

format(as.Date(df1$Date, format="%d/%m/%Y"),"%Y")
library(lubridate)
a=mdy(b)
year(a)

https://cran.r-project.org/web/packages/lubridate/vignettes/lubridate.html http://vita.had.co.nz/papers/lubridate.pdf

변수를 다음으로 변환할 때Date:

date <-  as.Date('10/30/2018','%m/%d/%Y')

그런 다음 원하는 요소를 잘라내고 연도와 같은 새 변수를 만들 수 있습니다.

year <- as.numeric(format(date,'%Y'))

또는 월:

month <- as.numeric(format(date,'%m'))

모든 날짜가 동일한 너비이면 날짜를 벡터에 넣고 하위 문자열을 사용할 수 있습니다.

Date
a <- c("01/01/2009", "01/01/2010" , "01/01/2011")
substring(a,7,10) #This takes string and only keeps the characters beginning in position 7 to position 10

산출량

[1] "2009" "2010" "2011"

이것은 구체적인 답변보다는 조언이지만, 제 제안은 날짜를 문자열로 유지하는 것이 아니라 날짜 변수로 즉시 변환하는 것입니다.이렇게 하면 매우 문제가 되는 해결 방법을 사용하지 않고 날짜(및 시간) 함수를 사용할 수 있습니다.

지적했듯이, 윤활유 패키지는 좋은 추출 기능을 가지고 있습니다.

일부 프로젝트의 경우 시작부터 날짜를 파이싱하는 것이 유용하다는 것을 알게 되었습니다. 즉, 시작할 연도, 월, 일(월) 및 일(주) 변수를 만듭니다.이렇게 하면 추출 코드가 요약/표/그래프 코드와 별개이므로 요약, 표 및 그래프를 간소화할 수 있으며, 변경해야 하는 경우 여러 지점에서 변경 사항을 롤아웃할 필요가 없기 때문입니다.

패키지를 사용하는 경우 이 작업을 매우 쉽게 수행할 수 있습니다.

library(date)
Date <- c("01/01/2009", "01/01/2010", "01/01/2011", "01/01/2012")
Date <- as.date(Date)
Date
# [1] 1Jan2009 1Jan2010 1Jan2011 1Jan2012
date.mdy(Date)$year
# [1] 2009 2010 2011 2012

## be aware that these are now integers and thus different methods may be invoked:
str(date.mdy(Date)$year)
# int [1:4] 2009 2010 2011 2012
summary(Date)
#     First      Last   
# "1Jan2009" "1Jan2012" 
summary(date.mdy(Date)$year)
#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#    2009    2010    2010    2010    2011    2012 

현재 한동안, 당신은 또한 오직 의지할 수 있습니다.data.table패키지 및 패키지IDate클래스 및 관련 함수(체크)?as.IDate()).

require(data.table)

a <- c("01/01/2009", "01/01/2010" , "01/01/2011")
year(as.IDate(a, '%d/%m/%Y')) # all data.table functions

언급URL : https://stackoverflow.com/questions/36568070/extract-year-from-date