지난 포스팅에서 외부 파일을 R로 불러오는 함수에 대해서 알아봤다면, 이번 포스팅에서는 거꾸로 R에서 처리한 데이터 객체를 외부 파일(텍스트)로 저장하는 함수와 분석결과를 외부 파일로 저장하는 함수에 대해서 알아보겠습니다. 

 

(엑셀로 내보내는 것은 유용할 거 같아 시도해봤는데요, rJAVA가 안깔린다면서 에러가 나네요 -,-;)

 

 


 

 (1) 데이터 객체를 텍스트 파일로 저장: write.table()


지난 포스팅에서 외부 파일에서 R로 불러왔던 'dataset_1' 데이터 프레임을 이번에는 거꾸로 'cust_profile.txt'라는 이름으로 밖으로 내보내서 저장을 해보도록 하겠습니다. 

 

> ## 데이터 객체를 외부 텍스트 파일로 저장: write.table()

> write.table(dataset_1, "C:/Users/user/Documents/R/cust_profile.txt", 

+             sep = ",", 

+             row.names = FALSE, 

+             quote = FALSE, 

+             append = TRUE, 

+             na = "NA"

+             ) 

 

  • write.table( 데이터셋 이름, 저장할 경로/저장할 파일 이름...) 순서로 쓰되, 경로에 구분자가 '\'가 아니라 R에서는 '/' 이므로 주의 요망
  • sep = "," 또는 " " 또는 ":" 등 데이터 구분자 입력.  tab 구분자는 sep = "\t"
  • row.names = FALSE 행 이름(번호)가 생략됨. key 값이 별도로 있으면 생략하고, 혹시 key 값을 관리하고 싶은면 TRUE로 옵션 설정
  • quote = FALSE 면 변수 이름, 행 이름에 인용부호(" ") 생략. 구분자(sep)를 따로 지정하면 굳이 인용부호 없어도 무방
  • append = TRUE 이면 나중에 추가로 동일 파일 이름으로 write.table()함수가 실행될 경우 기존 파일에 덮어쓰기를 하지 않고 계속 이어 붙이기를 함. 덮어쓰기를 하면 기존 파일이 다 날아가버리고 마지막 덮어쓴 이후의 데이터만 남게되어 대략 난감한 상황 발생할 것이므로 append = FALSE 옵션은 조심. 
  • na = "NA" : 결측값이 있으면 "NA"로 표기. na = "." 이면 결측값을 마침표(.)로 표기.


[R 데이터 객체를 외부 텍스트 파일로 저장하기 전]

 

[R 데이터 객체를 외부 텍스트 파일로 저장하기 후 (cust_profile.txt 파일 신규 생성)]


 


 

 (2) 분석 결과를 외부 파일로 저장: cat()


[ 1~10 숫자형 벡터 x를 외부 텍스트 파일로 저장 ]

> ## 1~10 숫자형 벡터 x 생성

> x <- c(1:10)

> mean_x <- mean(x)

> sd_x <- sd(x)

> z_x <- ((x-mean_x)/sd_x)


> ## cat() 함수

> cat( "Data is as follows:", "\n", 

+      x, "\n", 

+      file = "C:/Users/user/Documents/R/data_x.txt", 

+      append = TRUE)


  • 큰따옴표(" ") 안에 텍스트는 그래도 출력됨
  • "\n"은 새로운 줄로 바꾸라는 뜻 (키보드 엔터 치라는 뜻)
  • 벡터 x 를 입력했더니 아래 처럼 벡터 x가 출력되었음. 벡터 연산도 가능. 
  • file = "" 파일 저장 경로 & 파일 이름 지정
  • append = TRUE 동일 경로 & 파일 이름으로 계속 이어 붙이기 하고 싶을 때 사용



[ x의 평균값을 기존 텍스트 파일에 이어 붙여서 저장 ]

> cat( "Mean of x is", mean_x, "\n", 

+      file = "C:/Users/user/Documents/R/data_x.txt", 

+      append = TRUE) 





[ x의 표준편차를 기존 텍스트 파일에 이어 붙여서 저장 ]

> cat( "Standard Deviation of x is", sd_x, "\n", 

+      "\n", 

+      "\n", 

+      "Z score of x is", z_x, "\n", 

+      file = "C:/Users/user/Documents/R/data_x.txt", 

+      append = TRUE) 





양이 적거나, 한번 하고 말일이면 그냥 console 창 가서 눈으로 분석결과 보고서 직접 타이핑하거나, 아니면 블럭 설정해서 복사 > 붙여넣기 하면 됩니다. 다만, 양이 아주 많거나, 아니면 다수 동일 반복작업이 필요한 경우는 cat() 함수로 프로그래밍을 하는게 노가다를 줄이고 정신 건강에도 좋겠지요?! 알아두면 유용한 함수입니다. 


console에 나타나는 모형 적합 결과를 외부 파일로 저장할 때 사용하는 capture.output()은 다음번 포스팅에 소개하도록 하겠습니다. 

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡'를 꾸욱 눌러주세요.^^


728x90
반응형
Posted by Rfriend
,

R에서 데이터를 c() 함수로 직접 입력하는 방법은 지난 포스팅에서 알아보았습니다. 

 

이 외에도

 

(1) edit() 함수를 이용해 엑셀 처럼 그리드 창에 직접 입력하는 방법과,

 

(2) 외부에서 txt나 csv, 엑셀 파일 등을 직접 불러오는 방법도 있습니다. 



(1) R 데이터 편집기 edit() 


엑셀 처럼 생긴 데이터 편집기 창을 사용하려면 edit() 함수를 이용하며, 데이터 프레임 구조로 저장됩니다. 

비교적 소규모의 데이터를 입력하기에는 써볼만 하겠지만, 대용량 데이터를 입력해야 하는 거라면 좀 무리겠지요? 


## 데이터 입력창 edit() 

> d.f <- data.frame()  # 데이터 프레임을 먼저 생성해 주고 나서, 

> d.f <- edit(d.f)  # 데이터 편집기 창 불러오기



edit() 함수로 데이터 편집기를 호출하면 아래와 같은 창이 뜹니다. 



'var1', 'var2', ....  부분을 클릭하면 '변수 편집기' 창이 팝업되며, '변수명'과 '유형(numeric, character)'을 편집할 수 있습니다. 




2. 외부 파일 데이터 불러오기  read.table() 


다수의 변수에 대해 다수의 관찰값이 2차원 형태로 구성된 데이터 파일을 불러오는데 read.table() 함수를 사용합니다. 


아래와 같은 데이터셋이 있습니다.

 


dataset_1.txt




> ## 외부 데이터셋 파일 불러오기

> dataset_1 <- read.table("C:/Users/user/Documents/R/dataset_1.txt", 

+                         header = TRUE,  # 변수명

+                         sep = ",",  # 구분자

+                         stringsAsFactor = FALSE, # 문자형 데이터를 요인으로 인식할지 여부

+                         na.strings = ""  # 결측값 표시

+                         ) 


  • '#' 은 R이 인식하지 않으므로 '#' 기호를 활용해 데이터셋에 대한 부가적인 설명을 덧붙여 놓을 수 있음

  • 파일 경로 입력할때는 Windows 탐색기 경로 구분자 '\' 가 아니라 '/' 로 반대 방향임을 주의 

  • 구분자 sep에는 콤마 ",", 빈칸 " ", ":", tap (sep = "\t") 등이 있음

  • stringsAsFactor = TRUE 하면 문자형 데이터를 요인(factor)으로 인식함. 요인으로 불러오는게 맞는지 아닌지 확인 필요

  • na.strings = "", ".", "NA" 등이 있음

  • 'csv' 파일은 read.csv() 함수를 사용. read.table() 함수와 다른 점은, read.csv()함수는 sep="," 옵션이 필요 없다는 점과 파일명 끝이 "dataset_name.cvs"로 끝난다는 점. csv 파일이 'comma separated values'의 약자로서 콤마로 구분자가 되어 있기 때문임. 


RStudio 의 우측 상단 'Environment' 메뉴에 보면 'dataset_1' 데이터 프레임이 생겼음을 확인할 수 있으며, 이를 클릭 시 왼쪽 상단에 'dataset_1' 이름으로 데이터셋 보기 화면이 열린다. 




엑셀, SAS, SPSS, 인터넷 홈페이지에서 불러오는 패키지가 있기는 합니다만 비추천하므로 포스팅은 생략합니다. 

엑셀은 sheet가 나뉘어져 있을 수도 있고 매크로 등의 함수가 걸려있을 수도 있어서 오류 여지가 있기에 엑셀 파일을 R로 불러오기 하는 것은 비추천합니다. SAS나 SPSS 파일을 불러오는 패키지도 버전 오류 여지가 있기에 비추천합니다. 홈페이지 URL도 언제 어떻게 바뀔지, 언제 없어질지 모르므로 비추천합니다. 

(엑셀 파일 불러오기 참고 ☞ http://rfriend.tistory.com/313 )


그냥 맘편하게, 확실하고 정확하게, txt나 csv 파일로 내려서 파일 불러오기 read.table() 함수 사용하시는걸 추천합니다. 

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

 

728x90
반응형
Posted by Rfriend
,


R에서 데이터의 일부분을 선택/선별하는 작업을 Indexing 한다고 합니다. 


R로 데이터 전처리, 분석을 하다보면 R Indexing을 부지기수로 사용하게 되니 R Indexing은 제대로 알고 넘어가야할 매우 중요한 부분입니다. 


특히, R에서는 벡터 Indexing 후 연산하는게 매우 큰 강점이고 유용한 기능이랍니다. 


R을 잘 몰랐을 때 남이 짜놓은 R 코드를 보면서 도무지 이해가 안되고 수수께끼 같았었는데요, 나중에 알고보니 Indexing을 사용한 것이었더라구요. Indexing, 모르면 어렵게 느껴져도 한번 알고 나면 참 쉬운 개념이고 파워풀한 기능이랍니다. 



 

 R Indexing (인덱싱), R 데이터 선택

 

Indexing은 대괄호 [ ] 를 사용합니다. 

바로 직전에 포스팅한 R 데이터 구조별로 Indexing 예를 차근차근 들어보도록 하겠습니다. 


(1) 벡터 (Vector) Indexing


벡터 Indexing 할 때 조건을 주는 방법이 한가지만 있는게 아니랍니다. 


> x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

> ## 벡터 x의 첫번째 구성요소 Indexing
> x[1]

[1] 1
>
> ## 벡터 x의 세번째 구성요소 Indexing

> x[3]

[1] 3

> ## 벡터 x의 세번째~일곱번째 구성요소 Indexing

> x[c(3:7)]

[1] 3 4 5 6 7
>
> ## 벡터 x의 세번째, 다섯번째, 일곱번째 구성요소 Indexing

> x[c(3, 5, 7)]

[1] 3 5 7

> ## 벡터 x에서 TRUE 있는 위치의 구성요소 Indexing

> x[c(TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE)]

[1] 1 2 3 



(2) 행렬(Matrix) Indexing


행렬 Indexing은 대괄호 [i, j] 를 사용합니다. (i번째 행, j 번째 열을 뜻함)


> ## 1~12 숫자로 4열짜리 행렬 생성
> m1 <- matrix(1:12, nrow=4)

> m1

     [,1] [,2] [,3]

[1,]    1    5    9

[2,]    2    6   10

[3,]    3    7   11

[4,]    4    8   12


> ## m1 행렬에서 4번째 행, 2번째 열 구성요소 선택 (i, j indexing)

> m1[ 4, 2 ]

[1] 8

> ## m1 행렬에서 4번째 행 전체 구성요소 선택 (i indexing)

> m1[ 4, ]

[1]  4  8 12

> ## m1 행렬에서 2번째 열 전체 구성요소 선택 (j indexing)

> m1[ ,2 ]

[1] 5 6 7 8

> ## m1 행렬에서 3번째과 4번째 행의 2번째 열 구성요소 선택 (i, j indexing)

> m1[ c(3,4), 2 ]

[1] 7 8 



(3) 배열(Array) Indexing


배열은 동일한 유형의 2차원 이상의 데이터 구조로서, 행*열이 있는 바구니를 층층이 쌓아 놓은 모양이라고 했었지요. 층이 있다보니 Indexing할 때도 대괄호 [i, j, k] 로서 [행, 열, 층] indexing 위치를 표시합니다. 


> ## 1~24까지의 숫자를 가지고 2행*3열짜리 행렬을 4개 층으로 만들기
> a1 <- array(1:24, c(2,3,4))

> a1

, , 1


     [,1] [,2] [,3]

[1,]    1    3    5

[2,]    2    4    6


, , 2


     [,1] [,2] [,3]

[1,]    7    9   11

[2,]    8   10   12


, , 3


     [,1] [,2] [,3]

[1,]   13   15   17

[2,]   14   16   18


, , 4


     [,1] [,2] [,3]

[1,]   19   21   23

[2,]   20   22   24


> ## a1 배열의 2번째 행, 3번째 열, 4번째 층에 있는 구성요소 선택 (i, j, k indexing)

> a1[2,3,4]

[1] 24

> ## a1 배열의 1번째와 2번째 행, 3번째 열, 4번째 층에 있는 구성요소들 선택 (i, j, k indexing)

> a1[c(1,2), 3, 4]

[1] 23 24



(4) 데이터 프레임(Data Frame) Indexing


대괄호 [i, j] 로 표시, [i번째 행, j번째 열] indexing해오라는 뜻입니다. 

통계 분석 시 데이터 프레임 구조를 가장 많이 사용하다고 했으므로 데이터 프레임 Indexing도 많이 사용하겠지요? 

대골호를 하나만 쓰느냐 ([]), 두개를 쓰느냐 ([[]])에 따라서 indexing후의 데이터 구조(벡터 또는 데이터 프레임)가 달라지므로 주의를 요합니다. 벡터 구조로 indexing할 때 'dataset이름$변수이름' 형식으로 '$'를 쓰기도 합니다. 아래 예제를 보면 이해가 쉬울 것입니다. 


> ## dataframe 생성

> d1 <- c(1,2,3,4)

> d2 <- c("Kim", "Lee", "Choi", "Park")

> d3 <- data.frame(cust_id = d1, last_name = d2)

> d3

  cust_id last_name

1       1       Kim

2       2       Lee

3       3      Choi

4       4      Park


> ## d3 데이터 프레임에서 첫번째 행의 모든 구성요소를 선택 [i, ] => 데이터 프레임으로 출력됨

> d3[1, ]

  cust_id last_name

1       1       Kim

> ## d3 데이터 프레임에서 두번째 열의 모든 구성요소를 선택[ ,j] => 벡터로 출력됨

> d3[ ,2]

[1] Kim  Lee  Choi Park

Levels: Choi Kim Lee Park

> ## d3 데이터 프레임에서 첫번째 행, 두번째 열의 위치에 있는 구성요소 선택 [i,j] => 벡터로 출력됨

> d3[1,2]

[1] Kim

Levels: Choi Kim Lee Park

> ## d3 데이터 프레임에서 1번째 열(변수) 구성요소 선택 [j] => 데이터 프레임으로 출력됨

> d3[1]

  cust_id

1       1

2       2

3       3

4       4

> ## d3 데이터 프레임에서 "cust_id" 변수의 구성요소 선택 ["var_name"] => 데이터 프레임으로 출력됨

> d3["cust_id"]

  cust_id

1       1

2       2

3       3

4       4

> ## d3 데이터 프레임에서 1번째 열(변수) 구성요소 선택 [[j]] => 벡터로 출력됨

> d3[[1]]

[1] 1 2 3 4

> ## d3 데이터 프레임에서 "cust_id" 변수의 구성요소 선택 $ => 벡터로 출력됨

> d3$cust_id

[1] 1 2 3 4

> ## d3 데이터 프레임에서 3번째 & 4번째 행, 2번째 열의 구성요소 선택 [c(i,i), j] => 벡터로 출력됨

> d3[c(3,4),2]

[1] Choi Park

Levels: Choi Kim Lee Park

>  



(5) 리스트 (List) Indexing


리스트 Indexing은 겹대괄호 [[i]] 를 사용합니다. (i 번째 층을 선택)

통계 분석 결과가 리스트 데이터 구조로 많이 출력된다고 했는데요, 분석 결과 중에서 특정 통계량만 선택(indexing)해서 다른 분석의 input으로 넣는 경우에 indexing 이 유용하게 사용됩니다. 


> ## L1, L2, L3, L4 각 구조가 다른 4개의 객체로 L5라는 list (묶음 다발) 만들기

> L1 <- c(1, 2, 3, 4) # Vector

> L2 <- matrix(1:6, 3, byrow=TRUE) # Matrix

> L3 <- array(1:24, c(3,4,2)) # Array

> L4 <- data.frame(cust_id = c(1, 2, 3, 4), last_name = c("Kim", "Lee", "Choi", "Park")) # Dataframe

> L5 <- list(L1, L2, L3, L4) # List

> L5   # L5 리스트 출력

[[1]]

[1] 1 2 3 4


[[2]]

     [,1] [,2]

[1,]    1    2

[2,]    3    4

[3,]    5    6


[[3]]

, , 1


     [,1] [,2] [,3] [,4]

[1,]    1    4    7   10

[2,]    2    5    8   11

[3,]    3    6    9   12


, , 2


     [,1] [,2] [,3] [,4]

[1,]   13   16   19   22

[2,]   14   17   20   23

[3,]   15   18   21   24



[[4]]

  cust_id last_name

1       1       Kim

2       2       Lee

3       3      Choi

4       4      Park



> ## L5 리스트의 2번째 구성요소(2번째 층) 선택 [[i]]

> L5[[2]]

     [,1] [,2]

[1,]    1    2

[2,]    3    4

[3,]    5    6

> ## L5 리스트의 2번째 구성요소(2번째 층)의 3번째 행, 1번째 열의 구성요소 선택 [[i]][j, k]

> ## => 부연설명하자면, 일단 L5[[2]] 로 2번째 층 객체 선택 후 => 여기서 다시 [3, 1]로 3번째 행, 1번째 열 구성요소 선택한다고 생각하면 되겠음

> L5[[2]][3,1]

[1] 5 


여기까지 차분히 읽어오셨다면 R Indexing 의 머나먼 길을 완주하신겁니다. R의 훌륭한 무기 하나 득템하신 것을 축하합니다! 

 

※ 주의

 

R의 색인(indexing)이 '1'부터 시작하는 반면에,

Java, C, C++, Python 은 순차 자료형의 색인이 '0'부터 시작합니다.

R 말고 다른 언어 쓰시는 분들은 좀 헷갈릴 수 있는데요, 주의하시기 바랍니다.

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

 

728x90
반응형
Posted by Rfriend
,


SAS나 SPSS를 사용하다가 R을 처음 배우는 사용자라면 R에서 7개로 나누는 데이터 구조에 대해서 '이걸 왜 배우지? SAS나 SPSS는 이런거 모르고도 아무 문제 없이 데이터 처리, 분석 다 했었는데...'라는 의문과 함께, 'R 이거 배우기 어렵네...'라고 푸념할 수도 있겠습니다. 제가 그랬거든요. (SAS나 SPSS에서 주로 사용했던 데이터 구조가 R의 데이터 구조 중에서는 '데이터 프레임' or '행렬'이라고 하는 구조라고 생각하시면 됩니다. 전부다는 아니고 많은 경우....)


R의 데이터 구조별 특성에 대해서 정확하게 이해하지 않으면 나중에 데이터 처리, 분석 넘어갔을 때 자꾸 헷갈리고, 에러가 났을 때 에러 메시지가 무슨 의미인지 이해를 못할 가능성이 높습니다. 데이터 구조에 따라서 분석기법이 달라지게 되거든요. 라틴댄스로 치자면 빨리 '패턴' 배워서 멋지게 파트너와 춤추고 싶은데 선생님은 한달이고 두달이고 '스탭'만 연습시키는데요, 어찌보면 따분하고 답답한 '스탭' 기본기가 R로 치면 데이터 구조라고 생각하시면 되겠습니다. R의 기본이 되는 중요한 개념이므로, 그리고 나중에 이게 제대로 이해가 되고 R이 손에 익었다 싶을 때 다시 되돌아 보면 R에서 데이터 구조를 이렇게 나누어서 분석 기법을 달리 하는 것이 R의 차별화된 장점이자 특징이겠구나 하고 느끼게 되는 시점이 올겁니다. 


R 데이터 구조는 (1) 스칼라, (2) 벡터, (3) 요인, (4) 행렬, (5) 배열, (6) 데이터프레임, (7) 리스트의 7개로 나눌 수 있습니다. 하나씩 설명을 할텐데요, 처음에 잘 이해가 안가도 자꾸 R 사용하면서 다시 이번 포스팅 다시 돌아와서 한번씩 복습하시면 이해되는 날이 올거예요. (제가 Coursera로 강의 듣는데 R 데이터 구조라면서 강사가 막 영어로 뭐라 뭐라 하는데.... 뭔 소리인지 이해도 안되고, 이걸 왜 배우나 싶고, 짜증도 나고, 좌절도 되고...암튼 그랬는데요, 어느 순간 지나서 보니깐 다 이해를 하고 있더라고요. 한번 보고서 이해 안된다고 좌절하지 마시라는 뜻에서 자꾸 같은 소리 하고 있습니다. ^^;;;)



1. 스칼라 (Scala)


구성인자가 하나인 벡터를 말합니다. 


> # 스칼라 (Scala) : 구성인자가 1개인 벡터

> s1 <- c(1)

> s2 <- c("Kim") 



2. 벡터 (Vector)


벡터는 동일한 유형의 데이터가 구성인자가 1개 이상이면서 1차원으로 구성되어 있는 데이터 구조를 말합니다. 

(벡터 중에서 구성인자가 1개인 것을 '스칼라'라고 합니다)


> # Vector

> v1 <- c(1, 2, 3)                   # 숫자형 벡터

> v2 <- c("Kim", "Lee", "Choi")    # 문자형 벡터

> v3 <- c(TRUE, TRUE, FALSE)   # 논리형 벡터



3. 요인 (Factor) 


범주형(명목형 또는 순서형)의 데이터 구조를 요인(Factor)라고 합니다. 통계 분석 할 때 소위 '~~별' 분석을 할 때 쓰는게 요인이므로 굉장히 많이 사용됩니다. 나중에 분석을 하다보면 (1) '요인'으로 데이터를 변환해야 하는 경우도 생기고, (2) 반대로 '요인'이 아니어야 하는데 '요인'으로 데이터가 입력이 되어있어서 에러가 발생하는 경우도 생기곤 합니다. '요인'이 뭔지, 뭐에 쓰는 것인지 모르면 두 가지 경우 상황 파악을 못해서 곤혹스럽겠지요? 

요인이 가질 수 있는 값들을 '수준(level)'이라고 합니다. RDBMS에서의 '코드값'이라고 이해하면 되겠습니다. 수준(level)은 명목형은 상관없지만, 순서형의 경우 순서(order)를 부여할 수 있습니다. 분석 결과가 순서대로 범주화 되서 나와야 보기에 좋겠지요?


> # (1) 문자형 데이터를 그냥 입력하면, 따옴표가 있는 문자형 벡터가 생성

> f1 <- c("Middle", "Low", "High")

> f1

[1] "Middle" "Low"    "High"  

>

> # (2) factor()함수를 이용해서 문자형 벡터를 요인(factor)로 변환

> # 단, 순서를 지정 안해주면 알파벳 순서로 수준(level)이 자동으로 지정됨

> f2 <- factor(f1)

> f2

[1] Middle Low    High  

Levels: High Low Middle

>

> # (3) 수준(level)에 순서를 부여하려면 'order=TRUE' 옵션 설정, level=c("") 에 순서대로 입력

> f3 <- factor(f2, order = TRUE, level = c("Low", "Middle", "High"))

> f3

[1] Middle Low    High  

Levels: Low < Middle < High 



4. 행렬 (Matrix) 


행렬은 동일한 유형의 2차원 데이터 구조를 말합니다. (쉽게 말해 m x n 형태의 표 형태의 데이터)

참고로, 벡터는 동일한 유형의 1차원 데이터 구조라고 했지요. (쉽게 말해, 가로로 늘어선 한 줄 데이터)


행렬은 matrix() 라는 함수를 사용합니다. 

최적화(optimization) 할 때 제약조건을 행렬로 입력합니다. 공학에서 행렬 많이 사용합니다. 


> # 1~12까지의 숫자를 행(row)의 수가 4개인 행렬로 만들어라

> m1 <- matrix(1:12, nrow=4)

> m1

     [,1] [,2] [,3]

[1,]    1    5    9

[2,]    2    6   10

[3,]    3    7   11

[4,]    4    8   12

> # 1~12까지의 숫자를 행(row)의 수가 4개이고 행렬로 만드는데, 행 기준(byrow=TRUE)으로 채워나가라

> m2 <- matrix(1:12, nrow=4, byrow=TRUE)

> m2

     [,1] [,2] [,3]

[1,]    1    2    3

[2,]    4    5    6

[3,]    7    8    9

[4,]   10   11   12

>  



5. 배열 (Array) 


배열(Array)은 동일한 유형의 데이터가 2차원 이상으로 구성된 구조를 말합니다. 

참고로, 행렬은 동일한 유형의 2차원 데이터 구조라고 했지요. 따라서 배열은 쉽게 말해 행렬이라는 방을 층 층이 쌓아놓은 아파트라고 생각하시면 되겠습니다. 


> # 1~24까지의 숫자를 '2 x 3 행렬'로 해서 '4층' 짜리의 데이터 구조를 만들어라

> a1 <- array(1:24, c(2,3,4))

> a1

, , 1


     [,1] [,2] [,3]

[1,]    1    3    5

[2,]    2    4    6


, , 2


     [,1] [,2] [,3]

[1,]    7    9   11

[2,]    8   10   12


, , 3


     [,1] [,2] [,3]

[1,]   13   15   17

[2,]   14   16   18


, , 4


     [,1] [,2] [,3]

[1,]   19   21   23

[2,]   20   22   24 



> # 1~24까지의 숫자를 '3 x 4' 행렬로 해서 '2층'짜리의 데이터 구조를 만들어라

> a2 <- array(1:23, c(3,4,2))

> a2

, , 1


     [,1] [,2] [,3] [,4]

[1,]    1    4    7   10

[2,]    2    5    8   11

[3,]    3    6    9   12


, , 2


     [,1] [,2] [,3] [,4]

[1,]   13   16   19   22

[2,]   14   17   20   23

[3,]   15   18   21    1





6. 데이터 프레임 (Data Frame) 


데이터 프레임데이터 유형에 상관없이 2차원 형태의 데이터 구조를 말합니다. 

참고로, 행렬동일한 유형의 데이터가 2차원 형태로 구성되었다고 했지요. 

통계, 마이닝 분석할 때 데이터 프레임을 주로 사용합니다. 


> # 다른 유형의 벡터 생성

> d1 <- c(1,2,3,4)

> d2 <- c("Kim", "Lee", "Choi", "Park")

> # 데이터 프레임으로 묶기 : data.frame() 함수 사용

> d3 <- data.frame(cust_id = d1, last_name = d2)  # 변수명 부여

> d3

  cust_id last_name

1       1       Kim

2       2       Lee

3       3      Choi

4       4      Park 



7. 리스트 (List) 


리스트는 벡터, 행렬, 배열, 데이터 프레임 등과 같은 서로 다른 구조의 데이터를 모두 묶은 객체를 말합니다. 

참고로, 리스트 말고 나머지들은 서로 다른 구조의 데이터 끼리는 묶어 놓지 않았고 따로 따로 였지요. 

R에서는 통계 분석 결과가 보통 리스트 구조로 제시되고, 필요로 하는 통계량이 있으면 indexing해서 뽑아서 쓰기도 합니다. 

서로 다른 구조의 다수의 데이터 객체를 개별로 따로 따로 관리하는 것보다는, 이것들을 리스트라는 한 바구니에 가지런히 정리해서 모아놓으면 관리하기에 편하겠지요? 


> # Vector(L1), Matrix(L2), Array(L3), Data Frame(L4)를 만들어서, 하나의 List(L5)로 묶어라

> L1 <- c(1, 2, 3, 4) # Vector

> L2 <- matrix(1:6, 3, byrow=TRUE) # Matrix

> L3 <- array(1:24, c(3,4,2)) # Array

> L4 <- data.frame(cust_id = c(1, 2, 3, 4), last_name = c("Kim", "Lee", "Choi", "Park")) # Data Frame

> L5 <- list(L1, L2, L3, L4) # List

>

> # [[1]]는 Vector(L1), [[2]]는 Matrix(L2), [[3]]는 Array(L3), [[4]]는 Data Frame(L4)가 묶인 것임

> L5

[[1]]

[1] 1 2 3 4


[[2]]

     [,1] [,2]

[1,]    1    2

[2,]    3    4

[3,]    5    6


[[3]]

, , 1


     [,1] [,2] [,3] [,4]

[1,]    1    4    7   10

[2,]    2    5    8   11

[3,]    3    6    9   12


, , 2


     [,1] [,2] [,3] [,4]

[1,]   13   16   19   22

[2,]   14   17   20   23

[3,]   15   18   21   24



[[4]]

  cust_id last_name

1       1       Kim

2       2       Lee

3       3      Choi

4       4      Park

 


지금까지 살펴본 R의 데이터 구조를 도식화하면 아래와 같습니다. 뭐가 뭐의 부분집한인지, 각 데이터 구조를 구분하는 기준은 무엇인지 유심히 다시 한번 살펴보기 정리해보면 좋겠습니다. 



[ R 데이터 구조 (Data Structure in R) ]



많은 도움 되었기를 바랍니다.

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^


728x90
반응형
Posted by Rfriend
,

데이터 구조 (스칼라, 벡터, 요인, 행렬, 배열, 데이터프레임, 리스트 등)에 대해서는 다음번 포스팅에서 소개하도록 하겠으며, 먼저 벡터를 가지고 R에서 객체를 입력하는 방법과 몇가지 Tip을 소개하고자 합니다. 



R 객체 입 (할당)


R 에서 객체를 입력(할당)할 때는 (1) '<-', (2) '=' 의 두가지 방법이 있습니다. 저는 처음에 '<-'로 coursera 교육을 받았었는데요, 이후 한글로 된 책에서는 '='로 되어 있더군요. 


둘 다 가능합니다만, '='는 일부 오류가 발생하는 경우가 있다고 하니 '<-' 를 추천합니다. 수식을 취해서 변수 변환을 해야 하는 경우 '==' 을 사용하는데요, 이와 혼돈이 될 수 도 있고 하니 '<-' 를 가급적 사용하는 것을 추천합니다. 


데이터 유형은 'a.숫자형(numeric)', 'b.문자형(character)', 'c.논리형(logical)' 의 3가지가 있는데요, 각 유형별로 벡터 입력(할당)을 해보도록 하겠습니다. 


객체를 '<- c()' 입력하게 되는데요, 이때 'c'는 'concatenate' 의 첫 알파벳으로서 '연결'이라는 뜻이 되겠습니다. 


'문자형' 객체 입력 시에는 큰 따옴표("")를 해주어야 합니다. 


'논리형' 객체는 'TRUE'는 '1'로, 'FALSE'는 '0'으로 컴퓨터가 인지를 합니다. 나중에 Indexing 이나 벡터 연산을 할 때 이러한 성질을 알고 있으면 개념을 이해하는데 도움이 될 것입니다. 


# 숫자형(numeric) 벡터 객체 입력

x <- c(1, 2, 3, 4, 5)


# 문자형(character) 벡터 객체 입력

y <- c("Kim", "Lee", "Lee", "Choi", "Park")


# 논리형(logical) 벡터 객체 입력

z <- c(TRUE, TRUE, FALSE, FALSE, TRUE)



RStudio 의 우측 상단의 Environment 탭에서 Values를 보면 아래 처럼 x: numeric 벡터, y: character 벡터, z: logical 벡터가 새로 생겼음을 확인할 수 있습니다. 





R Tips 


R 사용 상의 몇가지 Tip을 소개하자면, 


(1) '#' 기호는 인식하지 않습니다. 


따라서 부가설명을 달기에 유용하게 사용할 수 있습니다. 위의 R 실습 문에도 '#'으로 부가설명을 달아놓았음을 알 수 있습니다. 나중에 외부 데이터 파일 불러오기 함수에 대해서도 소개를 할텐데요, 외부 파일에 데이터셋에 대한 부가 설명을 '#'로 시작해서 달아놓으면 데이터셋을 처음 보는 사용자라도 이해하기에 많은 도움이 되겠지요. 



(2) '대문자'와 '소문자'를 구분합니다. 


> # 대문자와 소문자 벡터 할당 예시

> x <- c(1, 2, 3, 4, 5) # 소문자 x 벡터

> X <- c(1, 0, 1, 0, 1) # 대문자 X 벡터

> x

[1] 1 2 3 4 5

> X

[1] 1 0 1 0 1 



# 소문자x 벡터와 대문자 X 벡터의 평균 값이 각 각 다르게 나옴

> mean(x)

[1] 3

> mean(X)

[1] 0.6



# 대문자로 시작하는 'Mean()'이라는 함수는 찾을 수 없다는 에러메시지가 뜸. 

> Mean(x)

Error: could not find function "Mean"



(3) 객체 이름을 숫자나 숫자로 시작하는 이름으로 지정하면 안됨


> # 객체 이름을 숫자로 하면 에러 발생

> 3 <- c(1, 2, 3)

Error in 3 <- c(1, 2, 3) : invalid (do_set) left-hand side to assignment
>
> # 객체 이름을 숫자로 시작해도 역시 에러 발생

> 3x <- c(1, 2, 3)

Error: unexpected symbol in "3x"
>
> 영어 알파벳 뒤에 숫자 쓰는 것은 괜찮음

> x3 <- c(1, 2, 3)

> x3

[1] 1 2 3

>
> # 한글 입력 예시 (1년 전만해도 한글 인식 못했던 것 같은데...되네요 ^^')
> 한글 <- c("김씨", "이씨", "이씨", "최씨", "박씨")

> 한글

[1] "김씨" "이씨" "이씨" "최씨" "박씨"



(4) R이 강력한 이유 중의 하나가 벡터 연산이 자유롭다는 것입니다. 

벡터끼리의 연산 예 중에서 재미있는 몇 개만 예를 들어보도록 하겠습니다. 벡터 연산이 안된다면 루프 프로그램을 따로 짜야 하는 경우가 생기는데요, R은 벡터 연산이 자유로우므로 프로그램이 한결 간결해질 수 있어서 좋습니다. 


> # 벡터를 가지고 새로운 벡터를 만들기, c(6:10)은 c(6,7,8,9,10)과 동일. 연속된 숫자 일괄 입력에 유용

> x <- c(1, 2, 3, 4, 5)

> x2 <- c(x, 6:10)

> x2

 [1]  1  2  3  4  5  6  7  8  9 10 

>

> # 논리형 벡터 TRUE 는 '1', FALSE는 '0'으로 인식함. 벡터끼리 연산 가능함

> z <- c(TRUE, TRUE, FALSE, FALSE, TRUE)

> x_plus_z <- c(x + z)

> x_plus_z

[1] 2 3 3 4 6

>

> # 요소 숫자가  x2는 10개, z는 5개로 서로 다름. 

> # 이럴 경우 개수가 작은 벡터의 요소가 순서대로 순환하면서 연산을 하게 됨.

> x2_plus_z <- c(x2 + z)

> x2_plus_z

 [1]  2  3  3  4  6  7  8  8  9 11

>  

>

> # 입력 요소의 유형이 서로 다를 경우 문자형으로 강제 변환되어 입력됨

> x3 <- c(1, "Kim", TRUE)  # 숫자형, 문자형, 논리형으로 입력했다고 생각하지만...

> x3

[1] "1"    "Kim"  "TRUE"    # 결과적으로 큰 따옴표가 붙어서 모두 문자형으로 입력되었음




맛뵈기로 벡터에 대해서 몇가지 Tip을 소개했는데요, 다음번 포스팅에서는 데이터 구조 (스칼라, 벡터, 요인, 행렬, 배열, 데이터프레임, 리스트 등)에 대해서 소개하도록 하지요. 

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

 

728x90
반응형
Posted by Rfriend
,

작업공간(Working Directory)이란 R 프로그래밍 하는 과정에서 생성되는 script, data set이 저장되는 곳을 말합니다. 따라서 분석을 시작하면 제일 먼저 해야 하는 작업이 '현재의 작업공간이 어디인지 확인하고, 저장할 작업공간을 설정하는 것'이 되겠지요. 그 다음은 R Script와 Dataset을 작업공간에 저장하는 것이 되겠구요.

 

 

 작업공간 확인 및 설정

 

(1) R script 를 통한 작업공간 확인 및 설정

 

# 작업공간 확인

> getwd()
[1] "C:/Users/user/Documents"

 

# 작업공간 설정

> setwd("C:/Users/user/Documents/R")
 
# 작업공간 확인
> getwd()
[1] "C:/Users/user/Documents/R"   # 작업공간이 바뀌었음을 확인할 수 있음

 

※ Windows 탐색기의 경로를 복사하면 => "C:\Users\user\Documents\R"로서 경로 구분 표시는 '\'

 반면에, R의 작업공간 경로 또는 데이터 불러오기/내보내기 경로 구분 표시 시에는 '/'이므로 주요 요망

 

 

혹은 아래처럼 해도 결과는 똑같습니다.  경로구분 표시로 '/' 말고 '\\'를 써도 됩니다.

 

 

    > setwd("C:\\Users\\user\\Documents\\R")

> getwd() [1] "C:/Users/user/Documents/R"  # 작업공간이 바뀌었음을 확인할 수 있음

 

 

 

 

(2) RStudio 메뉴를 통한 작업공간 확인 및 설정

 

  (2-1) 'RStudio 우츠 하단 Files' 에서 작업공간 저장할 폴더 경로 선택하여 하위 폴더로 들어가기

 

 

 

 

 

  (2-2) 작업경로 선택할 경로로 들어간 모습

 

 

 

 

 

  (2-3)  RStudio 우측 하단 Files > More > Set As Working Directory 메뉴 선택

 

 

 

 

 

 작업공간 저장하기

 

 (1) 'Ctrl+S' 단축키 또는 'File > Save' 메뉴 선택

 

 

 

 

(2) 저장 경로 설정

 

 

 

 

 

(3) 저장 결과 확인: RStudio 우측하단 'Files' 메뉴 선택

 

 

 

 

(4) R Script file, 폴더 이름 바꾸기: Files > Rename

 

  (4-1) 변경할 파일, 폴더 선택

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(4-2) 변경할 이름 입력

 

 

 

 

 

 

 

 

 

 

 

 

 

(4-3) 변경 결과 확인

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

 

728x90
반응형
Posted by Rfriend
,

R에서 가끔 한글을 사용할 때가 있을 텐데요, 혹시 한글이 깨진다면 아래 처럼 Tools 들어가서 설정을 바꿔보시기 바랍니다.  

 

바로 아래에 소개해드린 UTF-8로 Encoding 변경해보시구요,

(특히 Mac이나 Linux와도 함께 사용을 해야 하는 경우라면 텍스타 저장 인코딩을 UTF-8 로 맞춰줘야 함)

 

그래도 안되면 제일 아래에 소개해드린 CP949 (system default)로도 해보시기 바랍니다.

 

(저는 한글 깨짐이 귀찮아서 이제는 왠만하면 '영어'로 부가설명을 답니다. ^^;)

 

 

 

RStudio 에서 한글이 깨질 때 : (1) default text encoding : UTF-8

 

RStudio 사용할 때 한글이 깨지는 경우가 있는데요, 이때는 상단의 Tools > Global Options 를 선택하고 하단의 'Default text encoding: ' 란에 'UTF-8' 을 선택 후에, 창을 닫았다가 다시 실행시켜보기 바랍니다

 

 

(1) Tools > Global Options 선택



 

 

(2) Default text encoding: 란의 Change 메뉴 선택

 


 

 

(3) UTF-8 선택

 


 

 

 

##-----------------------------------------------------------------

 

 

[RStudio Version 0.99.891 ] 버전 이후 사용자는 아래 내용 참고 (메뉴 위치가 조금 바뀌었네요)

 

Tools > Global Options > Code > Saving > Default text encoding : UTF-8 선택

 

 

 

 

 

##-------------------------


 RStudio 에서 한글이 깨질 때 : (2) Reopen with Encoding 'CP949 (system default)'


 

위에 소개한 방법대로 했는데도 한글 깨짐이 해결이 안되었다면 아래의 방법을 실행해보시기 바랍니다.

 

 

 

1) File > Reopen with Encoding... 클릭

 

 

 

2) CP949 (System default) 선택 > (하단의) OK 클릭

 

 

 

참고로, Windows OS 사용자의 경우 '사용자 계정'이 '한글'로 되어 있는 경우 RStudio가 경로를 인식하지 못해서 에러가 나는 경우가 있습니다.  사용자 계정을 한글에서 영어로 바꾸는 방법은 ☞ http://rfriend.tistory.com/306  를 참고하세요. 



이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

 

728x90
반응형
Posted by Rfriend
,

RStudio는 크게 4개의 화면으로 구성이 되어있습니다. 

 

(1) Script 창

(2) Console 창

(3) Environment/History 창

(4) Files/Plot/Packages
    /Help/Viewer 창

 

의 4개로 구성이 되어 있는데요, 이는 그냥 R 화면보다는 확실히 사용자 친화적이라고 말할 수 있겠습니다. 

 

4개 화면에 대해서 하나씩 살펴보도록 하겠습니다.

 

 

RStudio 화면 구성 



RStudio를 처음 설치 후에 실행하면 아래처럼 화면이 뜹니다. 




먼저 R Script 창을 새로 띄운 후에 4개의 각 창에 대해서 설명하도록 하겠습니다. 

RStudio의 상단 File > New File > R Script (Ctrl+Shift+N) 을 선택하여 R Script 창을 새로 열도록 합니다. 


그러면 아래와 같은 창이 왼쪽에 2개, 오른쪽에 2개, 총 4개의 프레임으로 나뉘어서 RStudio가 뜹니다. 



4개의 창에 대해서 순서대로 설명하겠습니다. 



1. R Script 창


Batch 모드로 R Script를 작성하고 실행할 수 있는 창입니다. 

R Script 창에서 작성한 Script를 실행하려면 

 (1) Ctrl + R   or

 (2) Ctrl + Enter  or 

 (3) 블럭설정 후 RStudio Script 창의 상단 메뉴인 'Run' 단추 클릭


의 3가지 방법 중에 본인이 편한 것을 사용하면 됩니다. 



2. Console 창


Console 창은 

 (1) Interactive 하게 R 프로그램을 짜고 실행하기

 (2) R Script 창 혹은 Console 창에서 작성한 프로그램의 실행(계산) 결과 보기

 (3) 패키지 설치, 에러/오류 메시지 등의 로그 보기

등에 활용합니다. 


SAS나 SPSS 등의 상용 툴 사용자라면 Console창을 활용해 Interactive mode로 작업을 하는 것이 처음에는 어색하게 느껴질 수도 있겠습니다만, 사용하다보면 굉장히 직관적이고 사람이 보통 정보를 처리하는 과정과 유사하기 때문에 R의 매력이라고도 할 수 있겠습니다. 


Cosera 등의 오픈무료강좌나 다수의 R 책에서는 Console 창에 R 프로그램을 입력하고 바로 결과를 보여주는 식으로 제시가 많이 되어 있습니다만, R 프로그램을 자주 사용하는 분이라면 보통의 경우는 R Script창에서 프로그램을 작성하고 실행한 후에 2. Console창과 3.Environment 창  4. Plot 창을 보는 식으로 사용할 가능성이 높습니다. 아무래도 R Script를 재활용하려면 R Script창에 깔끔하게 Script만 짜놓는게 좋거든요. 


사용자마다 선호가 있을 터이니 몇번 사용하다 보면 자신에게 맞는 방식이 자연스레 생기지 않을까 싶습니다. 저는 간단한 연산 일회성으로 하는게 아니라면 대부분은 R Script 창에 프로그램 작성하는 편이예요. 




3. Environment/History 창


Environment탭에는 데이터셋이 나옵니다. 데이터셋의 이름, 관측치 갯수, 변수 갯수가 나옵니다. 

R 프로그램을 깔아서 쓰다가 RStudio 를 깔아서 쓰다보면 이처럼 소소한 사용자 친화적인 UI, UX가 꽤 맘에 듭니다. 



외부 데이터셋 불러오기, 외부로 내보내기, 지우기(삭제) 등의 아이콘이 보일텐데요, 이에 대해서는 별도로 포스팅하도록 하겠습니다. 



History탭에는 RStudio 사용 History 가 나옵니다. 

Console창에는 R Script, 연산결과, 패키지 설치 로그성 메시지와 오류/에러 메시지 등이 모두 나오는 반면에 History 창에는 R Script 의 이력만 나옵니다.  R Script창을 잘 사용하는 사용자라면 History 창을 볼 일이 거의 없을 겁니다만, R Script 창에서 수정/삭제하고 저장해버렸는데 이전에 짜놨던 R Script를 참조해야 한다면 History창을 뒤져볼 수도 있겠지요? 






4. Files/Plot/Packages/Help/Viewer 창


4-1. Files: Windows의 탐색기를 연상하면 이해하기 쉽습니다. R 데이터셋을 탐색기 활용해서 찾기, 신규 폴더 만들기, 파일 삭제하기, 이름 수정하기, 작업경로(Working directory) 설정하기 등이 가능합니다. 





4-2. Plot: 다수의 그래프를 화살표를 이용해서 앞/뒤로 오가면서 볼 수 있습니다. Zoom 기능을 활용해서 확대해서 볼 수도 있으며, 다수의 Image 파일형식이나 PDF 파일형식으로 Export도 가능합니다. 삭제도 가능하구요. 




4-3. Packages: User Library와 System Library에 설치되어 있는 Package를 확인할 수 있고, 신규로 설치(install), 업데이터(update)할 수도 있습니다. 




4-4. Help: 도움말 검색 기능이 있습니다만, 개인적인 경험으로는 구글링을 많이 하게 되더군요. 





RStudio 화면구성 설명하면서 나왔던 몇 개 R 명령어는 앞으로 차근차근 소개하도록 하겠습니다.




RStudio 에서 자주 사용하는 단축키 몇 개 소개합니다.
(맥북에서는 Ctrl 대신에 Cmd 키 누르면 됨)


(1) 스크립트 저장 : Ctrl + s

(2) 코멘트 부호 '#' 넣기, 해제하기 (토글키) : (행에 커서를 놓거나, 블록을 설정한 후에) Shift + Ctrl + c

(3) %>% chain operator 넣기 : Shift + Ctrl + m

(4) 텍스트 찾고 바꾸기 (find and replace) : Ctrl + f

(5) 새로운 R Script 창 열기 : Shift + Ctrl + n

(6) Console 창 화면 지우기 : (Console 창에 커서를 놓고) Ctrl + l


 

Rstudio의 Tools > Modify Keyboard Shortcuts 를 선택하면 아래와 같이 단축키 조회, 등록, 편집할 수 있는 창이 나옵니다. 본인이 사용하기에 편하게 등록, 편집해보시기 바랍니다. 


[ Rstudio Keyboard Shortcuts ]



이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

 

728x90
반응형
Posted by Rfriend
,

R은 (1) Base system과 (2) Package로 나눌 수 있습니다. 

 

(1) Base system CRAN (Comprehensive R Archive Network, https://cran.r-project.org) site에 접속해서 다운로드해서 설치했던 R 프로그램을 말합니다. 지난번에 포스팅했던 R 설치가 바로 Base system 설치를 했던 내용이 되겠습니다.  

 

 

(2) Package 는 R 함수, 데이터, 컴파일된 코드 등을 모아놓은 것을 말하며, 통계분석 목적/필요에 따라 Base system에 레고 블록처럼 설치를 해서 사용하게 됩니다. 

 

 

 

 

Package는 다시 설치와 사용방법에 따라서 

 

(2-1) Base system을 설치할 때 자동으로 설치가 되어 기본적인 통계분석과 그래프 작성, 데이터 처리 등에 즉시 사용이 가능한 Base packages (base, datasets, graphics, grid, methods, stats, utils 등)

 

(2-2) Base system을 설치할 때 자동으로 설치가 되기는 하지만, 사용하려면 R로 불러오기를 해야만 사용이 가능한 Recommended packages (MASS, foreign, lattice 등)

 

(2-3) 통계분석 목적/필요에 따라 따로 설치를 하고 R로 불러오기를 해서 사용해야 하는 Other packages 
(sqldf, plyr, TSA 등 다수)

 

로 세분화할 수 있습니다. 

 

 

 

 

 

 

 

R Package 설치하기란 사용자 입장에서 보면 세번째의 Other Packages 만이 개별 설치가 필요하며, Base Packages 와 Recommended Packages 는 R base system 설치 시 자동설치 되므로 일단 R을 설치하였다면 신경쓸 필요 없이 그냥 사용하면 됩니다. 

 

  • R Package 설치는 install.packages("package name") 함수를 사용합니다. 
  • R Package를 설치하고 난 후에 Package를 사용하려면 불러오기를 해야만 하며, library(package name) 함수 또는 require(package name) 함수를 사용합니다. 

 

이때 조심해야 할 것이 있는데요, install.packages()의 괄호안에 패키지 이름에는 큰 따옴표가 있지만, library() 괄호안의 패키지 이름에는 큰 따옴표가 없습니다. 

 

 

 

R에서 Time Series Analysis를 할 수 있게 해주는 TSA package를 설치해보도록 하겠습니다. 

 

(a) R Console 창에 install.packages("TSA") 함수 입력

 

 > install.packages("TSA") 

 

(b) CRAN mirror 선택 

 

 

(c) 설치 완료 후 불러오기 library(TSA) 함수

 

 

> library(TSA) 

 

 

 

 

이제 TSA 패키지를 사용할 수 있는 환경이 마련되었습니다. 

 

 

 

R package 를 특정 버전으로 지정해서 설치하려면 아래의 2가지 방법을 참고하세요. 

 

## -- R package 특정 버전으로 설치하기

## 방법 1
install.packages("devtools")
library(devtools)
install_version("psych", version = "2.1.3", repos = "http://cran.us.r-project.org")

## 방법 2
packageurl <- "http://cran.r-project.org/src/contrib/Archive/psych/psych_2.1.3.tar.gz"
install.packages(packageurl, repos=NULL, type="source")

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

 

728x90
반응형

'R 분석과 프로그래밍 > R 데이터 전처리' 카테고리의 다른 글

[R] RStudio 에서 한글이 깨질 때  (14) 2015.07.04
RStudio 화면 구성 및 주요 단축 키  (6) 2015.07.04
RStudio 설치하기  (2) 2015.06.30
R 설치하기  (2) 2015.06.30
R은 무엇이며, 왜 R인가?  (4) 2015.06.30
Posted by Rfriend
,

이전 블로그 포스팅에서 R 설치하기에 대해서 다루었다. 

이번에는 사용자 친화적인 R 통합 분석/개발 환경 (R IDE: R Integrated Development Environment)인 RStudio 설치에 대해서 알아보도록 하겠다. 

R을 먼저 설치하고, RStuio를 이후에 설치해서 RStudio에서 R을 분석하게 되면 보다 편하고 이쁘게 작업할 수 있어서 좋다. 

기업용은 유료이지만 (그래봐야 상용 통계툴에 비하면 겁나게 싸다 ^^), 일반 개인용은 무료다. 참 놀랍고 좋은 세상이다. R과 RStudio 개발자들에게, contributor들에게 감사의 말씀 전한다. ^^b


1. RStudio 사이트 접속 (http://www.rstudio.com/)

RStudio 사이트 접속하면 메인 화면에서 'Download RStudio'를 클릭하거나, 아니면 우측 상단의 'Products' 메뉴에 들어가서 'RStudio' 선택하면 된다. 

2. 'Desktop'과 'Server' 중에서 선택 

필자는 개인 노트북에서 사용할 것이므로 Desktop을 선택하였다. 혹시 기업에서 Server에 설치해놓고 사용할 것이라면 'Server' 선택하시면 되겠다.

(참고로, 유지보수나 지적재산권 관련해서 Commercial License 를 사용해야 하는 경우 Desktop이냐 Server 냐에 따라서 가격이 10배 차이 난다)



3. 'Open Source Edition'과 'Commercial License' 중에서 선택

아래 사진에 나온 설명을 보고서 본인에게 해당하는 것을 선택하면 되겠다. 
필자는 개인 노트북에 공짜로 설치해서 사용할 것이라서 'Open Source Edition'을 선택하였다. 

4. OS에 맞게 RStudio 다운로드

본인 컴퓨터의 OS에 맞게 RStudio 다운로드 하면 된다. 필자는 Windwons OS 사용 중인지라 'RStudio 0.99.447-Windows Vista/7/8'을 다운로드 하였다. 




5. RStudio 설치하기

컴퓨터의 다운로드 폴더에 가서 RStudio 설치 파일을 찾아서 클릭한다. 


디폴트 그대로 둔 상태에서 '다음>'을 계속 몇 번 누르다 보면 설치 끝난다. 

6. 설치 완료 화면

컴퓨터 바탕화면에 아래 사진에 나오는 RStudio 아이콘을 클릭해보자. 


그러면, 아래의 RStudio 초기 화면이 뜰 것이다. 축하한다. 성공적으로 설치 끝났다. 


[참고] Windows OS 사용자 중에서 '사용자 계정'이 '한글'인 경우 Rstudio가 경로를 인식하지 못해 오류가 발생할 수 있으며, 사용자 계정을 영어로 바꾸는 방법은 ☞ http://rfriend.tistory.com/306  참고하세요. 


앞으로 R 프로그램 소개는 RStudio 를 사용해서 진행하도록 하겠다.

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

728x90
반응형
Posted by Rfriend
,