빅데이터분석기사 lubridate 적용했는데 왜 값이 다를까요
김계철 교수님 안녕하세요~
빅데이터분석기사 2023 실기 교재에서요
<교재161페이지>
lubridate 날짜함수 이용 연습해보니 다음과 같이 제1방법과 제2밥법이 서로 값이 달라지네요. 왜 달라지는지 이해가 안됩니다. 답답해서 여쭙습니다.
이미 time_index 변수는 날짜로 인식하게 설정이 되어 있다면 제1방법처럼 ymd_hms~~~를 안써도 값이 같아야 하지 않을까요?
rm(list=ls())도 모두 적용했어요.
그런데 237페이지도 같은 방법으로 해보면 이때는 두 방법 모두 값이 같아요.
급하게 여쭤보니 꼭 알려주시기 바랍니다. 매번 답변해 주셔서 감사합니다~
# 제1방법
> lakers %>% filter(time_index<="2008-10-28 12:00:00") %>%
+ head(3)
# A tibble: 3 × 12
time_index opponent game_type period etype team
<dttm> <chr> <chr> <int><chr> <chr>
1 2008-10-28 03:00:00 POR home 1 rebound LAL
2 2008-10-28 02:52:00 POR home 1 turnover LAL
3 2008-10-28 02:52:00 POR home 1 timeout LAL
# ℹ 6 more variables: player <chr>, result <chr>,
# points <int>, type <chr>, x <int>, y <int>
# 제2방법
> lakers %>% filter(time_index<=ymd_hms("2008-10-28 12:00:00")) %>%
+ head(3)
# A tibble: 3 × 12
time_index opponent game_type period etype team
<dttm> <chr> <chr> <int><chr> <chr>
1 2008-10-28 12:00:00 POR home 1 jump ball OFF
2 2008-10-28 11:39:00 POR home 1 shot LAL
3 2008-10-28 11:37:00 POR home 1 rebound LAL
# ℹ 6 more variables: player <chr>, result <chr>,
# points <int>, type <chr>, x <int>, y <int>
#####################################################################
<교재237페이지>
# 제1방법
df %>% filter(country=="United Kingdom") %>%
+ mutate(ymd=dmy(date_added)) %>%select(ymd) %>%
+ filter(ymd>='2018-01-01'&ymd<='2018-01-30')
ymd
1 2018-01-30
2 2018-01-18
3 2018-01-01
4 2018-01-15
5 2018-01-01
Warning message:
There was 1 warning in `mutate()`.
ℹ In argument: `ymd = dmy(date_added)`.
Caused by warning:
! 15 failed to parse.
# 제2방법
> df %>% filter(country=="United Kingdom") %>%
+ mutate(ymd=dmy(date_added)) %>%select(ymd) %>%
+ filter(ymd>=ymd('2018-01-01')&ymd<=ymd('2018-01-30'))
ymd
1 2018-01-30
2 2018-01-18
3 2018-01-01
4 2018-01-15
5 2018-01-01
Warning message:
There was 1 warning in `mutate()`.
ℹ In argument: `ymd = dmy(date_added)`.
Caused by warning:
! 15 failed to parse.
댓글
안녕하세요 답변 드립니다.
두번째 질문사항 같은 것이 정답입니다.
첫번째 질문사항 중에 아래 코딩을 보시면 date=ymd_hm, format 년도와 시간분이고 초단위 모두 00
설정이 되어 있습니다.
ymd_hms( )함수로 필터링 하지 않으면 조건에 해당되는 범위 시계열 데이터를 가져올수 없습니다.
lakers<-lakers %>%
mutate(date=paste(date,time) %>% ymd_hm) %>%
rename(time_index=date) %>%
select(-time)
아래 내용 확인해주세요
댓글을 남기려면 로그인하세요.