R version 4.0 변경 내용

R NEWS 4.0 간단요약

요약

  • stringAsFactor
  • matrix
  • palette
  • r"()"
  • head & tail
  • t-test & wilcox.test

R을 처음에 쓴게 2.1.3이었나 2.1.4였는데 어느새 벌써 4.0이라니 감개무량하다.

주요 변경 내역

패키지

  • R 버전 4에 맞추어 패키지 재설치 해야 함
    • 사실 이건 3.5.x ~ 3.6.x 처럼 minor update에도 해당

Matrix

  • matrixarray 클래스를 상속함.

    • 즉, 3.6.3 에서는 matrix만 나왔는데

    • 4 부터는 array도 추가되었다.

r”()”

  • raw character constant를 취급하는 syntax의 추가. C++에서 r("...")과 비슷하다고 함.
    • \', " 를 동시에 포함하는 처리하기 까다로운 String 처리가 쉬워질 예정.
    • 시키는 대로 Quotes를 통해 내용을 확인 해봤는데, 다큐에 다음과 같은 부분이 추가 되었다.
## A Windows path written as a raw string constant:
r"(c:\Program files\R)"

## More raw strings:
r"{(\1\2)}"
r"(use both "double" and 'single' quotes)"
r"---(\1--)-)---"

3.6.3 에선 에러가 나고

4 에선 됨

handling 은 좀 다를 것 같긴한데 당분간 문자열 다룰일은 없을 것 같으니 생략

stringAsFactors = FALSE

  • 갓 패치.
  • data.frame이나 read.table에서 default 로 stringAsFactors == TRUE로 쓰는 바람에 항상 어거지로 FALSE를 맞출 필요 없음
    • 단, 이것 때문에 명시 없이 stringAsFactors = TRUE 를 default로 이용하던 기존 패키지에 방대한 작업이 필요할 것으로 예상됨.

plot()

  • base 에서 graphics 패키지로 옮겨짐. S3 object에 대해서는 당장 크게 바뀌는 건 없음. 문제는 S4 object들은 위 stringAsFactors 처럼 dependency 가 꼬이기 때문에 작업 필요.

그 외 주요 변경

  • Reference Counting 방식 변경
  • PCRE1에서 PCRE2로 업데이트 ( perl 어쩌구 라는데 관심없음 )

추가 기능 (읽어볼 만함)

  • for에 long vector 허용
    • 이전에는 안됐었나..?
  • data.matrix 에서 character를 integer가 아니라 factor로 변경.
  • package.skeletonNAMESPACE의 export 명시.
  • file.path()utf-8 관련 문제 수정 및 에러 표기 변경
    • help("file path encodng")으로 확인
  • list2DF 추가
    • 말 그대로 listdata.frame으로 바꾸는 함수.
  • t.test, wilcox.test에 one-sample, paired test 다루게 확장
    • 추가로 wilcox.test는 계산 방법 개선됨.
  • 기본 palette 색상 변경.
    • palette.colors()로 확인, 기존 palette 색상은 “R3”으로 저장.
    • hist, boxplot의 기본 색상은 col = "lightgray".
  • head, tailvector 뿐 아니라 array도 뽑게 확장됨.
    • 근데 아직 설명 글만 봐선 잘 모르겠다 어떤 차이인지.
  • sort.list 기능 확장
  • printwidth 추가 됨.
  • rbinom, rgeom, rhyper, rpois, rnbinon, rsignrank, rwilcox 기능 약간 확장
  • stats4mle 기능 확장.
  • parallel 재작업으로 PSOCK Cluster 구동에 걸리는 시간 줄어듬
  • globalCallingHandlers 추가.
  • tryInvokeRestart 추가

추가 기능 (알바 아님)

Function 추가

  • server socket connection에 connection type 추가, socketAccept, serverSocket으로 확인 가능
  • assertError, assertWarning 추가
  • DF2formula 추가
  • .S3method 추가
  • infoRDS 추가
  • iconvsub 추가
  • .class2 추가
  • deparse1 추가
  • proportions, marginSums 추가
    • prop.table, margin.table 를 개선, 확장
  • socketTimeout 추가
  • activeBindingFunction 추가

Function parameter 변경

  • approxfun, approxna.rm 추가
  • strdeparse.lines 추가
  • data/datalist파일 생성시, add_datalist 추가
  • bquotesplice 추가
  • nemfrowasp를 1로 default 설정
  • readBin, writeBin 에러 내용 추가
  • unlinkexpand 추가
  • pdfuseDingbats = FALSE로 설정
  • spineplot, cdplot parameter 약간 변경
  • R_user_dir 추가
  • deparse, dump, dputdigits17 추가
  • read.table, dataLC_COLLATE=C 추가
  • Rproffilter.callframes 추가
  • suppressWarnings, suppressMessagesclasses 추가
    • cairo-based graphics에 symbolfamily추가

방식 변경 / 확장

  • traceback 방식 약간 변경
  • S3 lookup 방식 약간 변경
  • methods 출력 방식 약간 변경
  • writeBin 약간 변경
  • sequence S4와 연계되게 약간 변경
  • memDecompress, memCompress 기능 확장
  • sweep, slice.index parameter 확장
  • stopifnot 약간 변경
  • R_ALWAYS_INSTALL_TEST, R CMD INSTALL 약간 변경
  • capabilities 약간 변경
  • rep.int, rep_len 약간 변경
  • .Machine 약간 변경
  • news 기존 버전들도 허용
  • N <- NULL; N[[1]] <- val 관련 length계산 약간 변경
    • 이런 걸 왜하는거지
  • Grid unit 코드 재작업으로 조금 더 좋아짐.
  • str 출력 내용 약간 변경
  • Renviron에서, ${FOO-bar}, ${FOO:-bar} 적용 방식 변경
  • grSoftVersioncairoFT, pango 내용 추가

삭제, 윈도우 터미널관련, C / F 연결, 패키지 설치 , R Help, 버그 픽스는 생략함

크게 중요하지도 않을 뿐더러, 든 자리는 몰라도 난 자리는 안다고 했으니 저절로 알게 될것이기 때문

Updated:

Comments