함수를 완성해 봅시다
여전히 URL 목록에 사용 불가한 요소가 있는지 감지하는 함수를 다듬고 있어요.
지금까지 작성한 코드를 정리해 보면:
safely()와map(.x, "error")를 결합한 오류 추출기.safely()와discard(.x, is.null)을 결합한 "null 아님" 추출기.possibly(.x, otherwise = 404)를 사용해 만든 404 생성기(함수로 변환됨).
이제 이 함수의 동작을 조금 바꿔 보겠습니다. 결과 또는 오류 중 어떤 것을 반환할지 선택할 수 있도록 하려는 거예요.
이렇게 하면 하나의 함수로 두 가지 질문에 답할 수 있습니다: 도달할 수 없는 URL은 무엇이고, 도달 가능한 URL은 무엇인가요? 이를 위해 함수 안에 "type"이라는 매개변수를 추가할 것입니다.
urls 벡터와 safe_read()는 작업 공간에 준비되어 있습니다.
이 연습은 강의의 일부입니다
purrr로 배우는 중급 함수형 프로그래밍
연습 안내
함수 정의를 완성하세요.
safe_read()를 URL 목록에 매핑하세요.- 결과의 이름을 URL 목록으로 설정하세요.
- 결과를 전치하여 $result와 $error 리스트로 바꾸세요.
pluck()를 사용해type요소를 추출하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Complete the function definition
url_tester <- function(url_list, type = c("result", "error")) {
type <- match.arg(type)
url_list %>%
# Apply safe_read to each URL
___(___) %>%
# Set the names to the URLs
___(___) %>%
# Transpose into a list of $result and $error
___() %>%
# Pluck the type element
___(___)
}
# Try this function on the urls object
url_tester(urls, type = "error")