ymd()와 year()를 사용하여 연도별로 서브 로트를 얻는 중입니다. 그 불균형을 일으키는 원인이 무엇인지 알아 내려고합니다. .yumd()와 year()를 사용하여 다른 결과를 얻을 수 있습니다.
331kb 10K 날짜가있는 CSV 파일은 here입니다. Google 드라이브 및 Dropbox를 가리키는 URL이 내 초보자 기술을 뛰어 넘는 오류를 계속 발생 시켰습니다.
require(data.table)
require(lubridate)
teaSet <- fread("../teaSet.csv", na.strings=c("NA","N/A", ""))
teaSet$opened <- ymd_hms(teaSet$opened, tz = "")
teaSet$year <- as.factor(teaSet$year)
ymd2010 <- teaSet[opened >= ymd("2010-01-01") & opened <= ymd("2010-12-31"),]
#1480 obs.
year2010 <- teaSet[year(opened)==2010,]
#1483 obs
summary(teaSet$year)
#2010 2011 2012 2013 2014 2015 2016
#1483 1408 1317 1414 1521 1701 1156
내가 누락 된 내용을 누구든지 설명 할 수 있습니까? 나는 날짜 범위별로 부분 집합을하고 년()과 연도()와 ymd() 개수가 다른 것으로 나타났습니다. 일을 가속화하기 위해 수년간 요소 컬럼을 만들었습니다. (그리고 "똑똑하게"연도 "라고 부름) - 데이터 세트에 1,300 만 행이 있습니다.하지만 제 질문에는 직접 관련이 없습니다. 시작했을 때 좋은 생각 인 것 같았습니다. 나는 다른 표본 크기를 만들었고 불균형은 크기에 따라 변하지 않았습니다. 감사!
예, 이미 시간대 설정을 시도했지만 아무런 차이가 없습니다. 나는 3 가지 다른 시간을 추상화했는데 그 중 첫 번째는 다른 일이 있음을 암시합니다. '# 1 : 2010-12-31 09:09:00 # 2 : 2010-12-31 20:49:58 # 3 : 2010-12-31 23 : 38 : 18' – armipunk
문제를 좀 더 살펴보면 다음과 같이 보입니다. ymd ("2010-12-31")는 12 시가 아니라 31시에 오전 12시입니다. 열린 <= ymd ("2011-1-1")를 변경하면 제대로 작동합니다. 그 문제를 피하려면 GMT로 설정하는 것이 좋습니다. - 행운을 빕니다 – Dave2e
고마워요! 범위를 열린 <= ymd ("2011-1-1")로 변경 했으므로 이제 개수가 정확합니다. 나 또한 열었습니다 <= ymd_hms ("2010-12-31 23:59:59") 및 hms 지정 너무 일했습니다. 그것은 매우 직관적이지 않습니다. 왜 hms를 지정하지 않으면 날짜의 ymd 부분이 변경되어야합니다. 내 로캘은 America/New_York이므로 UTC와의 차이는 위의 두 번째 주석에서 이종 날짜 중 첫 번째 날짜와 차이를 만들어서는 안됩니다. 답변으로 마지막 코멘트를 써 주시면 받아 들일 수 있습니까? – armipunk