한 번의 호출로 모두 처리하기
코드를 더 재현 가능하게 만들기 위해, 한 번의 호출로 끝내는 함수를 만들어 보려고 해요. 이미 이 함수의 뼈대는 제공되어 있으니, 이제 여러분이 완성해 보세요!
앞선 연습에서는 여러 단계로 과정을 작성했어요. 이제는 이를 한 번의 호출로 처리하려고 합니다. URL 목록을 받아서, 연결할 수 없는 요소의 이름만 반환하는 함수를 작성할 거예요.
함수를 작성한 뒤에는 저장해 두었다가, URL 목록을 정리해야 할 때마다 재사용할 수 있어요. 나중에 패키지로 만들어도 좋겠죠 ;)
이전 연습에서 사용한 urls 리스트가 작업 공간에 준비되어 있어요.
이 연습은 강의의 일부입니다
purrr로 배우는 중급 함수형 프로그래밍
연습 안내
map()호출 내부에서, 기본적으로404를 반환하도록 하는read_lines()의possibly()버전을 만드세요.출력의 이름을 설정하세요.
각 하위 리스트를 문자 벡터로 바꾸기 위해
collapse인수를" "로 설정한paste()함수를 사용하세요.값이 404인 요소를 제거하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
url_tester <- function(url_list){
url_list %>%
# Map a version of read_lines() that otherwise returns 404
map( ___(___, otherwise = ___) ) %>%
# Set the names of the result
___( urls ) %>%
# paste() and collapse each element
map(___, ___ = " ") %>%
# Remove the 404
___(___) %>%
names() # Will return the names of the good ones
}
# Try this function on the urls object
url_tester(urls)