install.packages("stringr")

#"stringr" package를 설치하기

library("stringr")

#설치한 "stringr" package library를 사용하겠다고 선언

 

TIP) 한 줄 실행 : Ctrl + Enter

      여러 줄 실행 : 여러 줄 Drag 해서 Block 설정 후 Ctrl + Enter

      # : 주석 (C/C++에서 //와 같은 기능)

 

1] str_extract(string, pattern)

: string data에서 pattern 조건에 해당하는 data 추출

ex) str_extract("abcd111aa3334", "[1-9]{2}")

# string data "abcd111aa3334"에서 숫자(1~9)형 data 연속으로 2개 나타는 data 추출(가장 먼저 발견되는)

결과 값 : "11"

# abcd111aa3334 중 숫자형 data 연속 2개 나타나는 값은 11, 33이 있는데 가장 먼저 발견되는 11만 나오게 됩니다.

 

2] str_extract_all(string, pattern)

: str_extract(string, pattern)과 비슷하지만, 가장 먼저 발견되는 pattern만 추출되는 것과 달리

pattern에 해당하는 모든 data를 추출합니다.

ex) str_extract_all("abcd111aa3334", "[1-9]{2}")

결과 값 : "11" "33" "34"

※ 모든 경우의 수를 고려하는 줄 알았지만, 한 번 검출된 data는 제외하고서 추출하는 것 같습니다.

예상했던 값은 "11" "11" "33" "33" "34"였지만, 한 번 추출된 data 제외하고서 "11" "33" "34"만 나옵니다.

 

3] str_replace(vector, pattern, replacement)

: string형 vector data 중, pattern 조건에 해당하는 data를 replacement에 입력한 값으로 바꾸겠다는 의미입니다.

ex) str_replace(c("한국", "USA", "JAPAN", "CHINA"), "한국", "KOREA")

결과 값 : "KOREA" "USA" "JAPAN" "CHINA"

평소에 자주 사용하는 Ctrl+F 단축키 이용하여 바꾸기 기능을 한다고 생각하시면 됩니다.

 

4] str_sub(string, start, end)

: string data에서 start 값(숫자)부터 end 값(숫자)까지 추출하겠다는 의미입니다.

학부시절, 자료구조시간에 character를 이용해서 string 만든 뒤,

특정 위치(pos) 지정하여 값 추출하는 함수 구현했던 기억이 나네요..

ex) str_sub("123456", 3, 6)

#string data "123456"에서 3번째 값부터 6번째 값까지 출력

결과 값 : "3456"

 

'컴퓨터공학 > R programming' 카테고리의 다른 글

[6] 사분위수 구하기  (9) 2019.05.23
[5] 반복문(for문)  (0) 2019.05.22
[3] R의 자료구조(R Data Structure)  (0) 2019.05.21
[2] R언어 Data type  (0) 2019.05.21
[1] R, RStudio 설치하기  (0) 2019.05.21

C/C++에서는 배열(array), 링크드리스트(linked list), 포인터(pointer)를 이용하여 Data에 접근하듯이

R에서도 자료구조를 이용하여 data에 접근합니다.

 

R의 자료구조 종류에 대하여 알아보겠습니다.

 

1. Vector

2. Matrix

3. List

4. Data Frame

 

크게 4가지로 나뉘어 집니다.

 

1. Vector

: 같은 data type을 가진 data들이 한 줄로 줄 서 있다고 생각하면 됩니다!

ex) [1] [2] [3] [4] [5]

     a   b   c   d   e

문자 a부터 e까지, 총 5칸 짜리 방에 1개씩 들어가 있다고 보시면 됩니다.

C++에서 1차원 배열이라고 생각하면 됩니다.

*주의할 점! 꼭 같은 data type만 저장이 가능합니다. a 1 b 3 c 이런식으로는 불가능 합니다.

※ 함수 사용 시 : sapply() 사용

 

2. Matrix

: Vector와 마찬가지로 같은 data type을 가진 data들로 이루어지지만,

한 줄로 서있는 Vector들이 여러개 합쳐져 있다고 생각하시면 됩니다.

C++에서 2차원 배열과 같은 기능이죠.

ex)    [1] [2] [3] [4] [5]

   [1]  a   c   e   g   i

   [2]  b   d   f    h    j

문자 10개를 a~e까지는 1번째 row에, f~j까지는 2번째 row에 저장하여

2개의 row가 만나 하나의 Matrix를 이루는 구조입니다.

C++의 경우에는 f에 접근하기 위해서는 array[2][1]로 사용하듯 행과 열로 이루어진 2차원 배열입니다.

※ 함수 사용 시 : apply() 사용

 

기본적으로 열(세로) 순서대로 들어가게 됩니다.

행(가로) 순서대로 값을 입력하고 싶은 경우, matrix() 함수 parameter에서 byrow=T 입력하면 됩니다.

 

3. List

: Vector와 Matrix의 단점은 같은 data type만 저장 가능하다는 것이지만, List의 경우에는 이 단점을 보완할 수 있습니다.

서로 다른 data type의 data들이 저장 가능합니다!

Key : value 형태로 구성해야 합니다.

웹프로그래밍 했을 당시 json이 key-value pair였던 것 같은데..기억이 가물가물 하네요ㅠㅠ

ex) var1 <- list( x = 1:2, y=c("b", "c"), z= 3:6)

결과화면 : $x 1 2 $y b c $z 3 4 5 6

key값이 먼저 나오고, 그 key 값에 해당하는 value들이 표시되는 format입니다!

※ 함수 사용 시 : lapply() 사용

4. Data Frame

: List와 Vector의 혼합형으로 Excel Sheet라고 생각하면 됩니다.

Data Frame도 마찬가지로, 서로 다른 data type을 2차원 배열로 구성하는 것입니다.

Data Frame을 이용하여 사용할 수 있는 함수도 광범위해서 Data Frame은 추후 다시 정리하겠습니다.

※ 함수 사용 시 : apply(), tapply() 사용

 

 

'컴퓨터공학 > R programming' 카테고리의 다른 글

[6] 사분위수 구하기  (9) 2019.05.23
[5] 반복문(for문)  (0) 2019.05.22
[4] stringr package 이용, string 함수  (0) 2019.05.22
[2] R언어 Data type  (0) 2019.05.21
[1] R, RStudio 설치하기  (0) 2019.05.21

*변수명 생성 규칙

1) 변수명의 시작은 영문!

ex) 1abc, #sddaf, 3jfiowj 같은 경우 사용 불가

c.f) 2번째 변수 글자부터는 _, . 사용 가능하나 하이픈(-)은 불가

2) 영어 대/소문자 구분

 

R에서 사용하는 Data type

1) numeric : 수치형

- 말 그대로 숫자가 들어가는 data type

2) logical : 논리형

- Boolean type이라고도 하죠 TRUE/FALSE

3) character : 문자형

- C/C++의 경우, 'a', 'b', 'c'같이 1 글자만 character로 취급하는데, R에서는 'abc'와 같은 string도 character!

- 'abc' = "abc", single/double quotation mark 구분 안하고 둘다 사용 가능합니다. 

4) data.frame : 데이터프레임

- Excell sheet같은 형태

5) na : NA

- 결측치 = 비어 있는 상태(empty)

- NULL이랑은 구분해서 취급 : x<-NULL의 경우 is.na(x)는 logical(0) 결과, is.null(x)에서 TRUE 결과 

6) integer : 정수형

- 모두가 아는 반가운! 인티저!

7) double : 실수형

- float가 아닌 double로 실수형 data type

8) complex : 복소수형

- ex) 1+0i, 2+0i

9) factor : 범주형

- 차트 or plot 만들 때 사용하는 data type!

- parameter 중 level이 중요한 역할(생략 시 Alphabets 순서)

10) nan : NaN 

- 숫자가 아닌 data type을 TRUE/FALSE로 표시

ex) is.nan(1/0 - 1/0) = TRUE

 

*data type에 관한 함수*

is.numeric(x) : x변수가 numeric type인지 아닌지 TRUE/FALSE

as.numeric(x) : x변수를 numeric type으로 취급(형 변환과 비슷하나 실제 형 변환X)

c.f) numeric 대신에 ineger, double, factor 등 data type을 넣으시면 됩니다!

 

'컴퓨터공학 > R programming' 카테고리의 다른 글

[6] 사분위수 구하기  (9) 2019.05.23
[5] 반복문(for문)  (0) 2019.05.22
[4] stringr package 이용, string 함수  (0) 2019.05.22
[3] R의 자료구조(R Data Structure)  (0) 2019.05.21
[1] R, RStudio 설치하기  (0) 2019.05.21

BE THE FIRST PENGUIN