R에서 as.Date 함수로 작업 할 때 문제가 있습니다. .csv 파일에서 읽는 날짜의 벡터가 정수 또는 문자로 들어옵니다 (어떻게 파일을 읽었는지,이 문제와 관련이없는 것 같습니다.) %m/%d/%Y
으로 포맷합니다.as.Date가 'double'유형으로 반환되는 이유는 무엇입니까?
내가 날짜 필드를 잡아 당겨, 행에 의해 파일 행을 통과하고 다른 곳에서 다음 코드를 사용하여 사용할 수 있도록 변환 할 노력하고있어, 이것은 내가 원하는 걸 줄 것으로 보인다
tmpDtm<-as.Date(as.character(tempDF$myDate), "%m/%d/%Y")
을 예를 들어 2014 년 12 월 30 일 시작 값으로이 작업을 수행하면 "2014-12-30"
값이 반환됩니다. 그러나이 값을 typeof()
을 사용하여 검사하면 R은 데이터 유형이 'double'이라고 알려줍니다. 또한이 값을 다른 값에 바인딩하고 c()
또는 cbind()
을 사용하여 데이터 프레임에 저장하려고하면 데이터 프레임에 16434로 저장되는데 이는 내게 다른 종류의 내부 저장소 값 날짜. as.Date()
을 사용하여 해당 값을 다시 변환하려고하면 원본을 요청하는 오류가 발생하기 때문에 그 이유는 확실합니다.
그래서 두 가지 질문 : 예상대로입니까? 그렇다면 실제로 날짜 형 객체로 끝나기 위해 날짜를 변환하는보다 적절한 방법이 있습니까?
감사합니다
재현 예를 확인하십시오 데이터를 가지고 어떤 종류의 당신'C()'또는'cbind()'그것이 알고 당신을인가하는 그 벡터의 모든 항목? 같은 유형이어야합니다? – Bernhard
나는 그것을 알고있다. 명확하지 않은 것에 대해 사과드립니다.하지만 바인딩을 시도하기 전에 데이터 유형이 두 배입니다 (즉, 위의 tmpDtm 객체는 double 유형입니다). 바인딩 문제는 나에게 덜 관심사입니다. 바인드 전에 날짜 객체가 있는지 확인하면 필요한 방식으로 다른 데이터에 바인딩하는 방법을 알 수 있습니다. 추가 정보가 도움이 될 것이라고 생각했습니다. 내가 바인딩을하기 전에 전환으로 어떤 일이 일어나고 있는지 확인하는 것입니다. – drRussClay
두 함수의 미묘한 차이는 개인적으로 알지 못하지만'typeof' 대신'class'를 사용해보십시오. 전자는'Date'를 리턴하는 반면 후자는'double'을 리턴합니다. – dsaxton