새로 시작한 R 세션에서 다음 코드를 실행했다. noSuchPkg123… | [ADsP] 데이터분석 준전문가 기출유형 모의고사 7회 상세 페이지
1[ADsP] 데이터분석 준전문가 기출유형 모의고사 7회
새로 시작한 R 세션에서 다음 코드를 실행했다. noSuchPkg123 은 설치되지 않은 패키지일 때 세 번의 출력을 차례로 나열한 것은?> a <- 1:3 > exists("a") > rm(a) > exists("a") > r <- suppressWarnings(require("noSuchPkg123", quietly = TRUE)) > r
1
TRUE, FALSE, FALSE
2
FALSE, FALSE, TRUE
3
TRUE, FALSE, 오류
4
TRUE, TRUE, FALSE
해설
a 를 만든 직후 exists 는 TRUE, rm(a) 로 지운 뒤에는 FALSE 이고, 없는 패키지에 대한 require 는 오류 없이 FALSE 를 반환한다.
library() 는 패키지가 없으면 오류로 실행을 멈추지만 require() 는 경고와 함께 논리값을 돌려주므로 if 문 조건에 쓸 수 있다.
- TRUE, TRUE, FALSE: rm 이 객체를 지우지 못했다고 본 것이다
- TRUE, FALSE, 오류: require 를 library 와 같은 동작으로 착각했다
- FALSE, FALSE, TRUE: 생성 직후의 존재 여부와 패키지 로드 결과를 모두 거꾸로 보았다
오류나 개정된 내용이 보이면 알려주세요