2014-01-10 2 views
0

내가 NA로 채우기에 의해 data.frame을 만든데이터 프레임에 전달할 때 날짜가 숫자로 다시 표시되는 이유는 무엇입니까?

date_base <- rep(NA, df_length) 
x <- rep(NA, df_length) 
y <- rep(NA, df_length) 

df1 <- data.frame(date_base,x,y) 

그때 일부 데이터를 순환합니다. (개별적으로 사전 채우는 data.frame에 따라서 필요성을 각 행을 채우는 예 내가 할 수있는 값 rbind를 사용하십시오. 그러나이 방법이 더 쉽다고 생각했습니다.)

첫 번째 열에는 'yyyy-mm-dd'으로 형식이 지정된 날짜가 포함됩니다. 이것들은 데이터베이스에서 가져온 다른 데이터 프레임 'in_data'에서 가져옵니다. 나는 그들이 as.Date 함수를 사용하는 날짜인지 확인한다. 각 행 I 간단한 세트의

in_data$date_base <- as.Date(as.character(in_data$date_base),"%Y-%m-%d") 

:

종료일은 in_data$date_base에서 값이
df1$date_base <- end_date 

. 나는 end_date의 데이터 유형을 확인했는데 그것은 Date[1]

있어

그러나 한 번 내가 df1$date_base을 확인하고 숫자 날짜의 표현입니다 인구 : 14487, 14517, 14548 대신

2009-08-31, 2009-09-30, 2009-10-31의 경우, 대신 NA의 I와 data.frame을 만드는 날짜가 미리 채울 좋아 :

date_base <- rep(as.Date(as.character('1970-01-01'),"%Y-%m-%d"), length(unique_dates) * versions_len) 

다음 DF1의 결과 날짜 DF1의 'yyyy-mm-dd' 형식을 유지한다.

데이터 프레임을 NULL 값으로 채우는 것이 왜 효과가 있습니까? data.frame을 미리 채우는 것은 나쁜 습관입니까? 그렇다면 모범 사례는 무엇입니까?

도움 주셔서 감사합니다.

답변

1

이 나는 ​​날짜 처음에 다음과 같이 첫 번째 열을 만드는 것처럼 간단 할 수 있다고 생각 : 당신이 NA로 설정하면

date_base <- as.Date(rep(NA, df_length)) 

IT는 logical 유형보다는 Date로 기본적으로 만들어집니다. 다음은이 질문에 대한 자세한 설명입니다. NA in data.table

+1

'NA'는 정수가 아니라 논리적입니다. – mnel

관련 문제