2014-10-13 4 views
5

지금 현재 R에있는 데이터 파일에서 연, 월, 일과 같이 3 개의 별도 열이 있습니다.이 세 열을 하나의 열에 병합하고 R을 이해하려면 어떻게해야합니까? 그게 데이트라고?세 개의 다른 열을 날짜에 합치십시오.

다음은 현재 모습입니다.

year mon day gnp 

1947 1 1 238.1 
1947 4 1 241.5 
1947 7 1 245.6 
1947 10 1 255.6 
1948 1 1 261.7 
1948 4 1 268.7 

답변

9

시도 :

df$date <- as.Date(with(df, paste(year, mon, day,sep="-")), "%Y-%m-%d") 
    df$date 
    #[1] "1947-01-01" "1947-04-01" "1947-07-01" "1947-10-01" "1948-01-01" 
    #[6] "1948-04-01" 
+0

고마워요! 그것은 아주 잘 작동합니다. – viethaihp291

+0

@Hai Nguyen 그것이 작동한다는 것을 알게되어서 기쁩니다. – akrun

1

아니면 일반적으로 더 쉽게 R의 날짜 및 시간을 사용한 작업하게 lubridate 패키지를 사용할 수 있습니다.

예컨대

df$date <- with(df, ymd(sprintf('%04d%02d%02d', year, mon, day))) 
df$date 
# [1] "1947-01-01 UTC" "1947-04-01 UTC" "1947-07-01 UTC" "1947-10-01 UTC" 
# [5] "1948-01-01 UTC" "1948-04-01 UTC" 

ymd 기능은, "1947년 1월 1일", "1947년 1월 1일"등을 "19470101"를 수 년, 월, 일을 나타내는 문자열을, 소요 또는도 mdy있다 요소가 다르게 정렬 된 경우 dmy입니다. 선택적으로 시간대를 지정할 수도 있습니다.

+1

FWIW, 이것은'Date'가 아닌'POSIXct'를 반환합니다. – GSee

+0

답을 고맙습니다! – viethaihp291

관련 문제