본문 바로가기
반응형

R강의70

R 유효숫자 최대 몇개까지 가능할까? 옵션 입력값에서는 유효숫자를 최대 22개까지 설정이 가능합니다. > options(digits = 23) Error in options(digits = 23) : invalid 'digits' parameter, allowed 0...22 > options(digits = 22) 실제 입력에서는 그렇지 않습니다. 정수를 입력할 때는 17개까지 제대로 입력됩니다. > 12345123451234512345 [1] 12345123451234512896 소수점과 함께 입력할 때도 17개까지 가능합니다. > 12345.123451234512345 [1] 12345.123451234513 2021. 7. 11.
[R] NA가 포함된 데이터의 평균을 apply 함수로 구하기 apply(df,2,mean,na.rm=TRUE) NA가 포함된 데이터프레임 df가 있다고 합시다. apply(df,2,mean) 이라고 입력하면 NA가 고려되지 않아 계산이 되지 않습니다. 아마 아래와 같이 입력하려고 할 것입니다. apply(df,2,mean(na.rm=TRUE)) 위와 같이 입력할 경우 아래 에러가 뜹니다. Error in mean.default(na.rm = TRUE) : 기본값이 없는 인수 "x"가 누락되어 있습니다 아래와 같이 입력해주어야 합니다. 2021. 5. 28.
[R 코딩] 평면분할표 ftable 함수 출력옵션 ftable 함수의 기본적인 설명은 아래 링크로 대신합니다. rbasall.tistory.com/160 [R 코딩] 평면분할표 ftable (3차원 이상의 table을 계층화) ftable 함수는 table을 계층화해주는 함수입니다. 3차원 이상의 table부터 의미가 있습니다. 예시를 통해 이해해봅시다. 먼저 3차원 table을 하나 정의해봅시다. 타이타닉호에 탑승한 5사람의 대 rbasall.tistory.com 내장데이터인 타이타닉데이터를 이용하여 ftable 함수의 출력옵션을 알아봅시다. 먼저 타이타닉데이터를 살펴봅시다. > str(Titanic) 'table' num [1:4, 1:2, 1:2, 1:2] 0 0 35 0 0 0 17 0 118 154 ... - attr(*, "dimnames").. 2020. 12. 12.
R에서 워드 doc, docx 파일 읽기 R에서 워드 doc, docx 파일 읽기 doc 파일 읽기 워드에서 doc 파일을 읽을 때는 textreadr 패키지의 read_doc 함수를 이용합니다. 먼저 패키지를 설치하고 불러옵시다. > install.packages("textreadr")> library(textreadr) read_doc 함수를 이용하여 준비한 워드파일을 불러옵니다. 예제를 위해 exdoc.doc라는 워드파일을 생성하였습니다. 내용은 아래와 같습니다. 1234567891011hihihi 함수의 입력값으로 경로와 파일 이름을 문자열 형태로 넣으면 됩니다. > data_raw=read_doc('C:/Users/Public/exdoc.doc') 아래와 같이 각 줄을 하나의 원소로 하는 문자열백터로 불러와집니다. > data_raw[.. 2020. 12. 8.
R 서로 다른 패키지에 같은 이름의 함수가 있는 경우 R 서로 다른 패키지에 같은 이름의 함수가 있는 경우 결론 부터 말씀드리면, 서로 다른 패키지에 같은 함수 이름이 있는 경우에는, 더 이후에 load된 패키지의 함수가 우선적으로 선택됩니다. 특정 패키지를 선택하여 함수를 사용하는 방법을 알아봅시다. 아래 두 패키지는 read_docx 라는 함수를 갖고 있습니다. officer 패키지textreadr 패키지 officer 패키지의 read_docx 함수를 사용하는 방법은 아래와 같습니다. > officer::read_docx(내용) 영구적으로 선택할 수도 있습니다. 앞으로 read_docx 함수는 officer 패키지의 것만 사용하려면 아래와 같이 입력하면 됩니다. read_docx 2020. 12. 8.
R 벡터 인덱싱 뒤에서부터 몇개 R 벡터 인덱싱 뒤에서부터 몇개 R에서 벡터가 하나 있다고 합시다. > v1=1:100 뒤에서 부터 17개를 인덱싱하고 싶습니다. 쉽게 하는 방법은 tail 함수를 사용하는 것입니다. > tail(v1,17) [1] 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 2020. 12. 8.
R 벡터 인덱싱 '끝까지' R 벡터 인덱싱 '끝까지' 아래 데이터가 있다고 합시다. v1=1:50 20번째 순서 부터 끝까지 인덱싱을 하고 싶습니다. 벡터의 길이가 계속 바뀔 수 있어 50이라고 입력하지 않는 방법을 원하는 상황입니다. 파이썬의 경우 아래와 같이 하면 됩니다. v1[20:] 끝나는 부분을 비워두면 되는 것입니다. R은 이런 기능이 없습니다. 편법을 사용해야 합니다. R는 인덱싱을 음수로 하면 원소의 제거가 가능합니다. 따라서 아래와 같이 입력하며 됩니다. > v1[-(1:19)] [1] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48[30] 49 50 2020. 12. 8.
R 문자열 알파벳을 전부 대분자로/소문자로 변경하는 법 R 문자열 알파벳을 전부 대분자로/소문자로 변경하는 법 R 문자열 알파벳을 전부 대분자로/소문자로 변경하는 함수는 아래와 같습니다. 대문자로 변경 : toupper( )소문자로 변경 : tolower( ) 예를 들어봅시다. > s="Hi Hello"'> tolower(s)[1] "hi hello"> toupper(s)[1] "HI HELLO" 2020. 12. 7.
R 문장에서 콤마(.) 일괄제거 R 문장에서 콤마(.) 일괄제거 모두바꾸기 함수인 gsub와 정규표현식을 함께 이용하면 됩니다. 단, fixed 옵션을 TRUE 로 놓아야 합니다. fixed 옵션은 정규표현식 반영 여부를 결정합니다. TRUE일 경우 정규표현식 무시, FALSE일 경우 정규표현식 반영인데, 콤마는 정규표현식이라서 FALSE로 할 경우 콤마를 정규표현식으로 인식하게 됩니다. 따라서 우리는 fixed를 TRUE로 설정해 콤마를 정규표현식이 아닌 문자로 인식하게 만들어야 합니다. 아래와 같은 문자열 벡터가 있다고 합시다. > s=c("hi.","hello.","pi.")> s[1] "hi." "hello." "pi." gsub 함수를 사용하여 콤마를 없애봅시다. > gsub(".","",s,fixed=TRUE)[1] "hi".. 2020. 12. 4.
R 첫문자 또는 마지막문자 일괄 변경 R 첫문자 또는 마지막문자 일괄 변경 모두바꾸기 함수인 gsub와 정규표현식을 함께 이용하면 됩니다. 첫문자만 바꾸려면 앞에 ^ 마지막문자만 바꾸려면 뒤에$를 붙여주면 됩니다. 예를들어 아래와 같은 문자열이 있다고 합시다. > s=c("hhpp","hhhppp","hhhhpppp")> s[1] "hhpp" "hhhppp" "hhhhpppp" gsub 함수를 정규표현식 없이 사용해봅시다. > gsub("h","v",s)[1] "vvpp" "vvvppp" "vvvvpppp" 모든 h가 v로 바뀝니다. 이번에는 ^정규표현식과 함께 사용해봅시다. > gsub("^h","v",s)[1] "vhpp" "vhhppp" "vhhhpppp" 처음 있는 h 만 v로 바뀝니다. 이번에는 마지막 p만 k로 바꿔봅시다. > g.. 2020. 12. 4.
R 단어 또는 숫자를 일괄 변경하기 (aka 모두바꾸기) R 단어 또는 숫자를 일괄 변경하기 (aka 모두바꾸기) R에서 단어 또는 숫자를 일괄 변경할 때는 gsub 함수를 사용합니다. global substitute 의 약어입니다. 아래와 같은 형식으로 사용합니다. sub(찾을내용,바꿀내용,데이터) 결과는 문자열로 반환합니다. 아래는 예시입니다. 335541243124 에서 3을 전부 10으로 바꿔봅시다. > gsub(3,2,335541243124 )[1] "225541242124" 3을 전무 문자 a로도 바꿀 수 있습니다. > gsub(3,"a",335541243124 )[1] "aa554124a124" 2020. 12. 4.
R 텍스트 파일을 리스트로 불러오기 (scan) R 텍스트 파일을 리스트로 불러오기 (scan) 아래와 같은 텍스트파일을 만들어봅시다. 제목 : ex1내용 : kim 183 75 ALee 173 65 BPark 166 56 AB scan 함수로 불러옵시다. 각자 텍스트파일을 저장한 경로로 불러오면 됩니다. 성, 키, 몸무게, 혈액형을 각각 리스트형태로 불러오겠습니다. data1=scan("C:/Users/Public/ex1.txt",what=list(name=character(0), height=numeric(0), weight=numeric(0), btype=character(0))) > data2$name[1] "kim" "Lee" "Park" $height[1] 183 173 166 $weight[1] 75 65 56 $btype[1] "A" ".. 2020. 12. 2.
R 텍스트 파일을 벡터로 불러오기 (scan) R 텍스트 파일을 벡터로 불러오기 (scan) 아래와 같은 텍스트파일을 만들어봅시다. 제목 : ex1내용 : 12 34 5 6 7 8 scan 함수로 불러옵시다. 각자 텍스트파일을 저장한 경로로 불러오면 됩니다. 떨어진 글자들을 각각 벡터의 원소로 불러옵니다. > data=scan("C:/Users/Public/ex1.txt")Read 7 items> data[1] 12 3 4 5 6 7 8 이번에는 내용에 문자를 포함해봅시다. 제목 : ex2내용 : 12 34 5 6 7 8a b c scan 함수로 불러와봅시다. > data=scan("C:/Users/Public/ex2.txt")Error in scan("C:/Users/Public/ex2.txt") : scan() expected 'a real', .. 2020. 12. 2.
R 텍스트 파일 원하는 줄 수 만큼 읽어오기 (readLines) R 텍스트 파일 원하는 줄 수 만큼 읽어오기 (readLines) 아래와 같은 내용의 파일을 메모장으로 만들어 저장합시다. 파일 이름: my.txt내용 : 1 2 34 5 6 7 8a b c d e g 불러와봅시다. 각자 저장한 경로에서 불러오면 됩니다. readLines 함수를 사용합니다. > data=readLines("C:/Users/Public/ex1.txt") 두줄만 불러오려면 아래와 같이 입력하면 됩니다. > data=readLines("C:/Users/Public/ex1.txt",n=2)> data[1] "1 2 3" "4 5 6 7 8" 2020. 12. 2.
R에서 html 테이블 읽기 R에서 html 테이블 읽기 예시를 통해 이해합시다. R의 위키피디아 페이지에서 표를 가져와봅시다. library(rvest)library(magrittr) #html 코드 받아오기html_raw = read_html("https://en.wikipedia.org/wiki/R_(programming_language)") html_table = html_table(html_raw,fill = TRUE, header = TRUE) #2번째 테이블만 추출result = extract2(html_table,2) #새 텝에서 보기View(result) rvest 패키지에 read_html과 html_table 함수가 들어있고, magrittr 패키지에 extract2 함수가 들어있습니다. 결과는 아래와 같습니다. 2020. 12. 2.
R에서 SAS 데이터를 불러오는/저장하는 방법 R에서 SAS 데이터를 불러오는/저장하는 방법 R에서 SAS 데이터를 불러올 때는 haven 패키지의 read_sas 함수를 사용합니다. 저장할 때는 write_sas 함수를 사용합니다. 먼저 haven 패키지를 설치하고 불러옵니다. > install.packages("haven")> library(haven) SAS 데이터 불러오기 read_sas 함수의 사용 방법은 아래와 같습니다. sas 파일 이름이 mysas 라고 합시다. 이 파일을 불러와 data라는 변수에 저장하겠습니다. > data=read_sas("mysas.sas6dat") SAS 데이터 저장하기 write_sas 함수의 사용 방법은 아래와 같습니다. write_sas(데이터,경로) 2020. 12. 2.
R 데이터프레임을 엑셀 파일로 저장하기 R 데이터프레임을 엑셀 파일로 저장하기 먼저 데이터프레임을 하나 정의합시다. > mydf=data.frame(A=c(1,2,3),B=c("a","b","C"))> mydf A B1 1 a2 2 b3 3 C 데이터프레임을 엑셀로 저장할 때는 openxlsx 패키지의 write.xlsx 함수를 사용합니다. openxlsx 패키지를 설치하고 불러옵니다. > install.packages("openxlsx")> library("openxlsx") write.xlsx는 아래와 같은 형식으로 사용합니다. 다양한 옵션이 있지만 주요 옵션만 사용하였습니다. write.xlsx(저장할 데이터, sheetName="시트 이름", file="파일이름.xlsx") 실제로 사용해봅시다. > write.xlsx(mydf, she.. 2020. 12. 2.
R 데이터프레임을 CSV 파일로 저장하기 R 데이터프레임을 CSV 파일로 저장하기 먼저 데이터프레임을 하나 정의합시다. > mydf=data.frame(A=c(1,2,3),B=c("a","b","C"))> mydf A B1 1 a2 2 b3 3 C 저장하는 방법은 두가지가 있습니다. 내장함수인 write.csv 함수를 이용하는 방법과 tidyverse 세계관의 readr 패키지를 사용하는 것입니다. tidyverse 를 이용하는 것이 속도가 더 빠릅니다. 대신 또한 행이름을 출력하지 않습니다. write.csv 이용 아래와 같이 사용합니다. mydf 라는 데이터프레임을 ex1.csv 라는 파일로 저장한다는 의미입니다. > write.csv(mydf,file="ex1.csv") 이름만 입력할 경우 작업폴더에 저장됩니다. 아래와 같이 파일 경로를 .. 2020. 12. 2.
R 스튜디오에서 CSV 파일 불러오는 방법 R 스튜디오에서 CSV파일 불러오는 방법 1) File → Import Dataset → From Text (readr)... 클릭 2) Browse 에서 엑셀 파일 선택 경로에 한글 있으면 안됨. 3) 첫줄에 이름이 있는지 여부 체크, NA를 무엇으로 인식할지 선택 4) code preview 부분을 복사해서 R script 창에 붙여넣기 한 뒤 실행하면 됩니다. Import 를 눌러서 불러와도 되지만, 코드를 가져와야 수정 등이 용이하므로 복붙이 낫습니다. 2020. 12. 2.
R 스튜디오에서 엑셀파일 불러오는 방법 R 스튜디오에서 엑셀파일 불러오는 방법 1) File → Import Dataset → From Excel 클릭 2) Browse 에서 엑셀 파일 선택 경로에 한글 있으면 안됨. 3) Sheet 이름 선택, NA가 있는 경우 입력 NA를 인식하는 방식입니다. NA를 na로 입력했다면, na라고 입력하면 됩니다. 4) code preview 부분을 복사해서 R script 창에 붙여넣기 한 뒤 실행하면 됩니다. Import 를 눌러서 불러와도 되지만, 코드를 가져와야 수정 등이 용이하므로 복붙이 낫습니다. 2020. 12. 1.
R 특정 경로에 있는 모든 파일 이름 출력 R 특정 경로에 있는 모든 파일 이름 출력 특정 경로에 있는 모든 파일 이름 출력할때는 아래 함수를 사용합니다. list.files(path="경로") 예를 들어봅시다. > list.files(path="C:/Users/Public") [1] "Desktop" "desktop.ini" "Documents" "Downloads" [5] "Favorites" "Foxit Software" "Libraries" "Music" [9] "myfile.txt" "Pictures" "Recorded TV" "Roaming" [13] "Sample" "Thumbs.db" "Videos" 숨김파일까지 보려면 all.files=TRUE 옵션을 추가하면 됩니다. 2020. 12. 1.
R 작업폴더에 있는 모든 파일 이름 출력 R 작업폴더에 있는 모든 파일 이름 출력 > list.files() 모든 파일 이름이 문자형 벡터로 출력됩니다. 2020. 12. 1.
R 출력함수 3가지 (print, cat, format) R 출력함수 3가지 (print, cat, format) print print 함수는 입력된 값을 출력하는 함수입니다. 아래와 같이 사용합니다. > print(33)[1] 33> print("HI")[1] "HI" 대표적인 arguments 는 아래와 같습니다. print(x, digits = getOption("digits"), quote = FALSE, na.print = "") digits : 소수점 이후 숫자의 개수quote : 문자열인 경우 따옴표 출력여부na.print : NA 를 어떻게 출력할지(디폴트는 그냥출력) cat 콤마를 이용하여 여러 값을 입력 받아 출력합니다. 아래와 같이 사용합니다. 입력받은 값을 파일로 저장할 수도 있습니다. > cat(1,2,3,"hi")1 2 3 hi 대표적.. 2020. 12. 1.
R 출력되는 숫자 소수점 자릿수 설정 R 출력되는 숫자 소수점 자릿수 설정 options 함수를 이용하여 digits 를 설정하면 출력 자릿수를 수정할 수 있습니다. > pi[1] 3.141593> options(digits=15)> pi[1] 3.14159265358979 2020. 12. 1.
R에서 home 디렉토리 확인하는 방법 R에서 home 디렉토리 확인하는 방법 아래와 같은 방법으로 확인합니다. > Sys.getenv("R_HOME")[1] "C:/PROGRA~1/R/R-36~1.2" 2020. 12. 1.
[R] 불러온 패키지 unload 하는 법 [R] 불러온 패키지 unload 하는 법 library 함수로 load한 패키지를 다시 unload 하는 법입니다. detach 함수를 사용하며, 사용 방법은 아래와 같습니다. > search() [1] ".GlobalEnv" "package:dplyr" "package:readr" "tools:rstudio" [5] "package:stats" "package:graphics" "package:grDevices" "package:utils" [9] "package:datasets" "package:methods" "Autoloads" "package:base" > detach(package:dplyr) > search() [1] ".GlobalEnv" "package:readr" "tools:rstu.. 2020. 11. 30.
[R] 현재 불러와진 패키지 확인 방법 [R] 현재 불러와진 패키지 확인 방법 현재 메모리상에 load 되어 이용가능한 패키지를 확인할 때는 search 함수를 argument 없이 입력합니다. > search() [1] ".GlobalEnv" "package:dplyr" "package:readr" "tools:rstudio" [5] "package:stats" "package:graphics" "package:grDevices" "package:utils" [9] "package:datasets" "package:methods" "Autoloads" "package:base" 2020. 11. 30.
[R] 작업 디렉토리 확인 및 변경 [R] 작업 디렉토리 확인 및 변경 작업 디렉토리 확인 get working directorty 의 약어 > getwd()[1] "C:/Users//Documents" 작업디렉토리 변경 set working directory 의 약어 > setwd("경로") 2020. 11. 30.
R에서 %가 들어간 연산자들 (%%, %/%, %*%, %in%, %>%) R에서 %가 들어간 연산자들 (%%, %/%, %*%, %in%, %>%) %% 나머지 계산 > 12%%7[1] 5 %/% 몫 계산 > 12%/%7[1] 1 %*% 행렬의 곱 > m=matrix(1:6,nrow=2)> v=c(1,2,3)> m%*%v [,1][1,] 22[2,] 28 %in% 원소 여부 > 3 %in% v[1] TRUE> 11 %in% v[1] FALSE> c(1,2) %in% v[1] TRUE TRUE %>% dplyr 패키지의 파이프연산자. 연산자 오른쪽의 함수를 왼쪽에 적용. > library(dplyr)> v=c(1,2,3,4,5)> v %>% mesn> v %>% mean[1] 3 2020. 11. 30.
[R] 루트, 지수, 로그 계산 [R] 루트, 지수, 로그 계산 루트 sqrt 함수 사용 > v1=c(1,2,3,4,5)> sqrt(v1)[1] 1.000000 1.414214 1.732051 2.000000 2.236068 로그 log 함수 사용 > v1=c(1,2,3,4,5)> log(v1)[1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379 지수 exp 함수 사용 > v1=c(1,2,3,4,5)> exp(v1)[1] 2.718282 7.389056 20.085537 54.598150 148.413159 2020. 11. 30.
반응형