2016-11-23 1 views
2

이것은 매우 간단한 질문이므로 답변하기 쉽습니다. 내가 종료 날짜가 오늘이되도록 R의 기간을 설정하려고R 프로그래밍 - 시간대의 끝을 오늘로 설정하십시오

a <- seq(as.Date("2016-10-10"), as.Date("2016-11-22"), by = "day") 
data.table(a) 

: 여기에 몇 가지 샘플 데이터입니다. 나는 작동 코드가 있습니다

b <- a[a%between% c("2016-10-20", "2016-11-21")] 

내가 Sys.Date()를 사용하려고를, 그것은 작동하지 않습니다, 나는 왜 아무 생각이 없다 : 내가 봤 오류 Error in charToDate(x) : character string is not in a standard unambiguous format를 얻을 수

gamesplayed <- gamesplayed[Date %between% c("2016-10-20", Sys.Date())] 

을하고 해답이 날짜 형식 오류와 관련이있는 것처럼 보입니다. 왜 내 오류가 될지 알 수 없습니다. 도와 주셔서 감사합니다.

답변

6

Date 개체 또는 character 문자열을 모두 일관된 형식으로 사용해야합니다. 예컨대 :

a[a %between% c(as.Date("2016-10-20"), Sys.Date())] 
# [1] "2016-10-20" "2016-10-21" "2016-10-22" "2016-10-23" "2016-10-24" 
# ... 
#[31] "2016-11-19" "2016-11-20" "2016-11-21" "2016-11-22" 

날짜, 잘 다룰 때 항상 명시 적으로 DateDate을 비교하는 것이 바람직 할 것이다. 비록 R이 Datecharacter에 비교하는 것을 처리 할 수는 있지만 의 범위를 모두 character 개체로 지정할 때 원래 코드가 작동하는 이유입니다.

Sys.Date() == "2016-11-23" 
#[1] TRUE 
Sys.Date() == as.Date("2016-11-23") 
#[1] TRUE 
+1

스폿 온. 적절한 유형을 사용하는 것이 중요하며 날짜를 사용하여 작업 할 수도 있습니다. –

+0

어이 어리 석다. 나는 도와 줘서 고마워. – runnin4tay5000

관련 문제