으로 변환 중 날짜 열을 R의 Date 개체로 변환하려고했지만 원하는 결과를 얻지 못했습니다. 이 개인은 1970 년 1 월 1 일 이전의 생년월일이 있으므로 as.Date
R은 1/12/54와 같은 날짜를 2054-01-12로 변환합니다. 이 문제를 어떻게 해결할 수 있습니까? 정말 고마워.1970 년 1 월 1 일 이전의 날짜를 R
답변
모든 것이 1900 년대라면, 한 줄짜리 - 시작시 두 자리 연도로 포맷하고 앞면에 19를 치고 날짜로 변환하십시오. 다시. 사람이 몇 %> % 물건을 냉각 보일 것이다
s = c("1/12/54","1/12/74")
as.Date(format(as.Date(s,format="%d/%m/%y"), "19%y%m%d"), "%Y%m%d")
# [1] "1954-12-01" "1974-12-01"
이 "69"에서 년에 "99"은 여기에 또 한 줄의, 1800 있습니다 : 철저 그래서 테스트하지
library(dplyr) # for pipe operator:
s %>% as.Date(format="%d/%m/%y") %>%
format("%y%m%d") %>%
(function(d){
paste0(ifelse(d>700101,"18","19"),d)
}) %>%
as.Date("%Y%m%d")
## [1] "1954-12-01" "1874-12-01"
참고 하나씩 오류가 있거나 몇 달이나 며칠이 섞여있어 야합니다. ISO8601 Compliant
'%> %에 의한 창조적 파괴만을위한 Upvote. –
이것은 정확히 내가 필요한 것입니다. – user122514
내가 할 것 :
library(lubridate)
x <- as.Date("1/12/54", format = "%m/%d/%y")
year(x) <- 1900 + year(x) %% 100
> x
[1] "1954-01-12"
은 연중 계속 된 날짜 = "70"에 실패합니다. OP 상태는 1970-01-01 이전이기 때문에 "1/12/74"는 ** 1874 ** – Spacedman
이어야합니다. 분명히 이것을 벡터에 적용하려면 더 강력한 솔루션이 필요하지만 OP가 ' ifelse' 또는 두 사람이 제공 한 도구를 사용하여 거기에 도착하십시오! –
답변 해 주셔서 감사합니다. :-) – user122514
필요가 없습니다를 추가 기능 패키지, 기본 R은 괜찮습니다. 당신이 기본이 아닌 포맷을해야하는 경우
R> as.Date("1954-01-12")
[1] "1954-01-12"
R>
, 그냥 그들을 지정 :하지만 당신은 세기를 지정해야
R> as.Date("19540112", "%Y%m%d")
[1] "1954-01-12"
R>
편집 : 데이터가 정말 %y%
형식을 사용하여 온 경우,
R> d <- as.Date("540112", "%y%m%d")
R> dlt <- as.POSIXlt(d)
R> dlt$year <- dlt$year - 100
R> as.Date(dlt)
[1] "1954-01-12"
R>
: 및
당신이 19 세기가 을 필요로하는 정책 결정을하는 일이 여기 그것을하는 하나의 기본 R의 방법입니다
나는이 답이 OP를 돕지 않는다고 생각한다. 왜냐하면 세기를 "지정"하는 방식, 즉 문자열 ** 벡터 ** 형식의 "% m/% d/% y "에서"% m/% d/% Y "로 변경하십시오. 나는 OP가'as.Date ("1954-01-12")'가 그/그녀에게 필요한 것을 주겠지 만, 그/그녀는 그 형식을 가지고 있지 않다는 것을 알고 있다고 확신한다. –
나는 그것을하기위한 기본 R 방식을 추가했다. 추가 기능이 필요 없습니다. –
더 좋아 보인다! –
- 1. 1970 년 1 월 1 일
- 2. 게시 날짜에 '1970 년 1 월 1 일 목요일'잠시 후
- 3. DD/MM/YYYY 형식의 날짜를 1970 년 1 월 1 일 01에서 보낸 초로 변환 하시겠습니까?
- 4. 날짜 형식 년 12 월 1 일
- 5. C++/1970 년 1 월 1 일부터 정확한 년, 월, 주,시, 분으로 변환합니다.
- 6. DatePickerDialog가 1970 년 1 월 1 일의 최소 날짜를 잘못 적용했습니다.
- 7. 신기원 이전의 split.xts 동작 수정 (1-1-1970)
- 8. 스핑크스를 생각하면서 1970 년 이전의 날짜를 검색하는 방법은 무엇입니까?
- 9. 1 월 1 일 ~ 지난 달의 날짜를 1 월 1 월 날짜로 변환합니다.
- 10. 날짜가 => ''2011 년 1 월 1 일 '
- 11. 1970 년 1 월 1 일 이후의 초수 00:00:00 GMT Erlang
- 12. 어떻게하면 1970 년 1 월 1 일 00:00:00에 std :: chrono :: time_point를 만들 수 있습니까?
- 13. 목표 C - 1970 년 1 월 1 일 00:00:00 UTC와 주어진 날짜 사이의 초
- 14. 왜 현대 시스템의 대부분에서 참조 날짜로 1970 년 1 월 1 일?
- 15. 1970 년 이전의 날짜에 strtotime 사용
- 16. 2008 년 1 월 1 일 C# datetime에서 변환하는 방법
- 17. PHP : strtotime()은 항상 1970 년 1 월 1 일을 반환합니다.
- 18. Google의 '만료'날짜의 중요도는 1990 년 1 월 1 일 금요일 00:00:00 GMT입니까?
- 19. Mixpanel 사용자 트랙은 1 월 1 일
- 20. NTP는 1900 년 1 월 1 일부터 현재까지의 초로 변환합니다.
- 21. 변환 타임 스탬프는 자정 이후 초를 나타냅니다. 1970 년 1 월 1 일의 세계 협정시 (UTC).
- 22. 1970 년 1 월 1 일부터 1969 년 12 월 31 일까지의 UNIX 신기원 잘못된 날짜의 차이점은 무엇입니까?
- 23. C++ time_t back to before 1/1/1970
- 24. 페이지에 날짜를 설정하십시오 (일/월/년)
- 25. Date.getTime() 시간이 2000 년 1 월 1 일임
- 26. 코드 실행 날짜 1 월 31 일 1 월 DateTime.Add
- 27. 기기 언어가 영어 인 경우 프론트 엔드의 캘린더 앱 날짜 기본값 (1970 년 1 월 1 일) [Hongkong SAR china]
- 28. 팔레트 일 월 년 방법 수액 크리스탈 리포트의 값 1
- 29. 는 내가 일/월/년 및 일/월/년
- 30. 자바 스크립트에서 특정 연도의 1 월 1 일 이전인지 확인하십시오.
무엇이 옳은지 어떻게 결정할 수 있습니까? '1/1/16'의 경우 : 2016 또는 1916입니까? – Christoph
@christoph "69"다음의 2 자리 연도는 ** 18 ** 70이어야합니다. – Spacedman