본문 바로가기
반응형

전체 글232

[R 코딩] 시계열 데이터 만들기 ts 함수 R에서 시계열데이터를 만들 때는 ts 함수를 이용합니다. 아래와 같은 형식으로 사용합니다. ts(데이터, frequency=간격, start=시작일) 아래는 예시입니다. 1년을 12개로 나누고, 2020년 12월 부터 시작하겠다는 의미입니다. 데이터는 1부터 10까지 정수입니다. > ts(1:10,frequency=12,start=c(2020,12)) Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2020 1 2021 2 3 4 5 6 7 8 9 10 아래는 또다른 예시입니다. 1년을 4개로 나누고, 1990년 2월부터 시작한 것입니다. 데이터는 표준정규분포에서 10개를 임의 추출하였습니다. > ts(rnorm(10),frequency=4,start=c(1990,2.. 2020. 12. 12.
[R 내장데이터 설명] mtcars 데이터 한줄요약 : 32행 11열의 데이터프레임 R 내장데이터를 잘 알아두면 유용하게 사용됩니다. 여러 책이나 예제들에서도 내장데이터를 사용하고 있어 공부하는데도 도움이 됩니다. 오늘은 내장데이터 중 mtcars 데이터를 알아봅시다. 먼저 help(mtcars) 를 입력하면, mtcars 데이터의 설명을 볼 수 있습니다. 이 중 description(설명)을 번역하면 아래와 같습니다. 1974년 모터트랜드 US 메거진에서 가져온 데이터입니다. 32 종 자동차의 10가지 디자인과 성능특성과 연료소모량입니다. str 함수를 적용해봅시다. > str(mtcars) 'data.frame':32 obs. of 11 variables: $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 .. 2020. 12. 12.
[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 코딩] 평면분할표 ftable (3차원 이상의 table을 계층화) ftable 함수는 table을 계층화해주는 함수입니다. 3차원 이상의 table부터 의미가 있습니다. 예시를 통해 이해해봅시다. 먼저 3차원 table을 하나 정의해봅시다. 타이타닉호에 탑승한 5사람의 대한 데이터입니다. class 는 탑승객 좌석등급, age는 나이입니다. > class=c("1st","1st","2nd","3rd","Crew") > gender=c("M","M","M","F","F") > age=c("성인","성인","아이","아이","성인") > tab2=table(class,gender,age) > tab2 , , age = 성인 gender class F M 1st 0 2 2nd 0 0 3rd 0 0 Crew 1 0 , , age = 아이 gender class F M 1st .. 2020. 12. 12.
[R 코딩] 3차원 table 우리에게 익숙한 table 은 2차원 table 입니다. 예를 들면 아래와 같습니다. class 는 승객 등급, gender는 성별입니다. 타이타닉호에 탑승한 다섯 사람에 대한 정보입니다. > class=c("1st","1st","2nd","3rd","Crew") > gender=c("M","M","M","F","F") > tab1=table(class,gender) > tab1 gender class F M 1st 0 2 2nd 0 1 3rd 1 0 Crew 1 0 만약 한가지 정보를 더 추가하면 어떻게 될까요?? 나이 정보를 추가하고 테이블을 만들어봅시다. > class=c("1st","1st","2nd","3rd","Crew") > gender=c("M","M","M","F","F") > age=c.. 2020. 12. 12.
[R 내장데이터 설명] 타이타닉 데이터 요약 : 4개 요인을 가진 4차원 테이블 R 내장데이터를 잘 알아두면 유용하게 사용됩니다. 여러 책이나 예제들에서도 내장데이터를 사용하고 있어 공부하는데도 도움이 됩니다. 오늘은 내장데이터 중 타이타닉 데이터를 알아봅시다. 먼저 help(Titanic) 를 입력하면, 타이타닉 데이터의 설명을 볼 수 있습니다. 이 중 description(설명)을 번역하면 아래와 같습니다. 타이타닉 승객들의 운명에 대한 데이터이다. 승객 등급, 성별, 나이, 생존여부로 나뉜다. str함수를 적용해봅시다. > str(Titanic) 'table' num [1:4, 1:2, 1:2, 1:2] 0 0 35 0 0 0 17 0 118 154 ... - attr(*, "dimnames")=List of 4 ..$ Class : c.. 2020. 12. 12.
[R 내장데이터 설명] CO2 데이터 한줄요약 : 5열 84행의 데이터프레임 R 내장데이터를 잘 알아두면 유용하게 사용됩니다. 여러 책이나 예제들에서도 내장데이터를 사용하고 있어 공부하는데도 도움이 됩니다. 오늘은 내장데이터 중 CO2 데이터를 알아봅시다. 먼저 help(CO2) 를 입력하면, CO2 데이터의 설명을 볼 수 있습니다. 이 중 description(설명)을 번역하면 아래와 같습니다. CO2 데이터프레임은 80행 5열로 되어 있습니다. 돌피(Echinochloa crus-galli)라는 식물종을 이용하여 냉기에 대한 저항을 실험한 결과입니다. str함수를 적용해봅시다. > str(CO2) Classes ‘nfnGroupedData’, ‘nfGroupedData’, ‘groupedData’ and 'data.frame':84 ob.. 2020. 12. 12.
[R 내장데이터 설명] iris 데이터 한줄요약 : 5열, 150행의 데이터프레임 R 내장데이터를 잘 알아두면 유용하게 사용됩니다. 여러 책이나 예제들에서도 내장데이터를 사용하고 있어 공부하는데도 도움이 됩니다. 오늘은 내장데이터 중 iris 데이터를 알아봅시다. 먼저 help(iris) 를 입력하면, iris 데이터의 설명을 볼 수 있습니다. 이 중 description(설명)을 번역하면 아래와 같습니다. 그 유명한 iris 데이터는 cm 단위로 측정된 값들을 제공한다. 데이터는 sepal length, width 와 petal length, width 이다. iris 3종에서 각각 50개의 꽃에 대한 정보입니다. iris 3종은 setosa, versicolor, virginica 입니다. sepal 은 꽃 받침이고, petal은 꽃잎 입.. 2020. 12. 12.
[R] 테이블에서 열 또는 행 위주로 정리(주변표) 먼저 테이블을 하나 정의합시다. 다섯 사람의 성별과 혈액형 데이터입니다. > gender=c("M","M","F","F","M") > btype=c("A","B","B","A","B") > mt=table(gender,btype) > mt btype gender A B F 1 1 M 1 2 행 위주로 정리해봅시다. margin.table( ) 함수에서 margin 옵션을 1로 입력합니다. > margin.table(mt,1) gender F M 2 3 이번에는 열 위주로 정리해봅시다. > margin.table(mt,2) btype A B 2 3 2020. 12. 12.
[R] 테이블을 비율로 변환 먼저 테이블을 하나 정의합시다. 다섯 사람의 성별과 혈액형 데이터입니다. > gender=c("M","M","F","F","M") > btype=c("A","B","B","A","B") > mt=table(gender,btype) > mt btype gender A B F 1 1 M 1 2 비율로 바꿔봅시다. 함수는 prob.table() 입니다. 전체 합이 1이 되도록 비율로 바꾼 것입니다. > prop.table(mt) btype gender A B F 0.2 0.2 M 0.2 0.4 이번에는 옵션을 추가해봅시다. margin 옵션입니다. margin=1 로 설정할 경우 각 행의 합이 1이 되도록 비율로 바꾸는 것입니다. > prop.table(mt,margin=1) btype gender A B F.. 2020. 12. 12.
[R코딩] 자음만 남기는 함수 단어의 자음만 남기는 함수는 abbreviate( ) 입니다. 아래는 예시입니다. > abbreviate("start") start "strt" > abbreviate("hi hello") hi hello "hhll" 2020. 12. 12.
[R코딩] 미국 주(state)이름 데이터 R에서는 미국 주(state)이름 데이터를 제공합니다. 먼저 주 전체이름 데이터입니다. > state.name [1] "Alabama" "Alaska" "Arizona" "Arkansas" [5] "California" "Colorado" "Connecticut" "Delaware" [9] "Florida" "Georgia" "Hawaii" "Idaho" [13] "Illinois" "Indiana" "Iowa" "Kansas" [17] "Kentucky" "Louisiana" "Maine" "Maryland" [21] "Massachusetts" "Michigan" "Minnesota" "Mississippi" [25] "Missouri" "Montana" "Nebraska" "Nevada" [29] .. 2020. 12. 12.
R 월(month) 영어이름 데이터 (Jan,Feb,...) R에서는 월(month)의 영어이름 데이터를 제공합니다. 두가지가 있습니다. 전체이름 데이터는 month.name 입니다. > month.name [1] "January" "February" "March" "April" "May" [6] "June" "July" "August" "September" "October" [11] "November" "December" 약어 데이터는 month.abb 입니다. > month.abb [1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" [12] "Dec" 2020. 12. 12.
R에서 알파벳 불러오기 R에서는 알파벳 대소문자를 내장데이터로 갖고 있습니다. 먼저 대분자데이터입니다. LETTERS 를 입력하면 됩니다. > LETTERS [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" [18] "R" "S" "T" "U" "V" "W" "X" "Y" "Z" 소문자는 소문자로 letters 를 입력합니다. > letters [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" [18] "r" "s" "t" "u" "v" "w" "x" "y" "z" 2020. 12. 12.
R for문 사용방법 형식은 아래와 같습니다. 꼭 i가 아니어도 됩니다. 아무 문자나 가능합니다. for(i in 자료구조){ i가 들어간 문장 } data는 주로 벡터가 사용됩니다. 벡터가 아닌 데이터프레임 등도 사용이 가능합니다. 아래는 예시입니다. 첫항이 2이고, 공차가 3인 등차수열의 1항부터 5항까지의 원소를 v라는 변수에 저장해봅시다. v= c( ) for (i in 1:5){ v[i]=2+3*(i-1) } 2020. 12. 11.
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.
반응형