Goals
- R-Studio 초기 설정, 주석, 변수, SEQ, C ( ... ), 함수 도움창, getwd( ), setwd( )
- 배열의 인덱스, 연산, 벡터와 스칼라
- 함수, 필수/옵션 파라미터, 패키지, Search, Detach, Ls, Rm
- 데이터 프레임, CSV 파일 읽기, 상대 경로와 절대 경로
Notes
R-Studio 설치 후 옵션 설정. tools -> Global options...
1. General -> Default Working
2. Saving -> Default text encoding
3. Appearance -> font, fontsize, Editor theme 조절
Ctrl + Enter : 소스코드 실행
Console : 결과 출력
Environment : 변수. 컴퓨터 메모리에 저장된 값을 보여줌.
File directory
>> getwd( ) # get working directory: 현재 작업 디렉토리 이름을 반환
[1] "C:/dev/lab-r"
>> setwd( ) # set working directory: 현재 작업 디렉토리를 변경
- 함수 도움창 : Ctrl + Space
- 주석 : #
- 변수의 선언과 사용
변수이름 <- 값
변수이름 = 값
- R에서는 변수의 데이터타입을 명시하지 않음
- R의 변수는 여러개의 값을 하나의 변수에 저장할 수 있음.
- 배열
num_array <- 1:10
# 배열 1~10 숫자를 변수에 저장
[1] : 배열 인덱스
num_array <- 1:10 # num_array 변수에 1~10까지 숫자들을 저장
num_array # 배열 원소 전체를 출력
num_array[9] # 배열에서 인덱스 9번 원소 출력
- SEQ - 시퀀스 연산자
# R에서 여러개의 값을 하나의 변수에 저장하는 방법
1) start : end >> start ~ end까지 1씩 증가하는 숫자들의 배열
2) seq(start, end, by) 함수
start : 시작값, end : 종료값, by : 증가량 (기본값 1, 음수 가능)
ex) num_array = seq(10, 1, -1) (by 음수 하려면 start, end 순서 바꿔야 함
- C (....) - 콜론 연산자, 컴바인 함수
ex) num_array <- C (1, 10, 100, 1234)
names <- C ("강다혜", "김수인", "김영광")
- 배열의 인덱스 : 배열이름[인덱스]
>> 배열의 인덱스는 1부터 시작, 연속적인 양의 정수
num_array <- 1:10
num_array[10]
num_array[1:5] # 연산자를 배열의 인덱스 자리에 사용할 수 있다.
< 앞으로 다음과 같이 표기 >
> 식 ~
결과값
>num_array[c(1,5,120)] # C( ) 함수를 인덱스에 사용할 수 있다.
[1] 1 5 10
> num_array[seq(1, 10, 2)] # SEQ ( ) 함수도 인덱스에 사용할 수 있음.
[1] 1 3 5 7 9
- 숫자들의 연산
> num_array + 1
[1] 11 21 31 41 51
> num_array * 2
[1] 20 40 60 80 100
> num_array / 2
[1] 5 10 15 20 25
> num_array - 2
[1] 8 18 28 38 48
> x + y
[1] 2.5
> x - y
[1] -0.5
> x * y
[1] 1.5
> x / y
[1] 0.6666667
# 스칼라(Scalar) : 1개의 값을 저장하는 변수
# 벡터(Vector) : 2개 이상의 값을 저장하는 변수
# 벡터와 스칼라를 사칙연산(+-*/) 하면 벡터의 모든 원소에 스칼라 값을 사칙연산하게 된다.
>> 벡터와 벡터의 연산은 같은 인덱스의 원소들끼리 계산
> numbers1 = c(11, 22, 33)
> numbers2 = c(10, 20, 30)
> numbers1 + numbers2
[1] 21 42 63
> numbers3 = c(11, 22, 33, 40, 50) # +10 +20 +30 +10 +20
> numbers4 = c(10, 20, 30)
> numbers3 + numbers4
[1] 21 42 63 50 70
Warning message:
In numbers3 + numbers4 :
longer object length is not a multiple of shorter object length
※ 문자열은 사칙연산 + - * / 을 할 수 없다.
- 함수
값( Argument )을 파라미터 (값을 저장하는 변수, Parameter) 에 전달하면, 연산 또는 기능을 수행한 후 결과를 되돌려 주는(return) SW 코드
> scores = c(99, 100, 87, 50, 95)
> average <- mean(scores) # 벡터(여러개의 값들)의 평균
> average
[1] 86.2
mean, max, min, sum
- R 함수의 필수/옵션 파라미터
ex) seq( ) ~> help 페이지에서 검색
필수 파라미터 : 파라미터의 기본값이 지정되지 않아서, 함수를 호출할 때 반드시 값을 전달해야만 하는 파라미터
ex) sum
옵션 파라미터 : 파라미터의 기본값이 지정되어 있어서, 함수를 호출할 때 값을 생략해도 되는 파라미터
ex) seq(from = 1, to = 1, by = 1 )
함수를 호출할 때 파라미터의 이름을 명시하지 않으면, 함수 정의의 파라미터 순서대로 값들이 전달됨.
명시하면 순서와 상관없이 호출할 수 있다.
- 패키지(package)
함수들과 데이터를 묶어서 배포하는 꾸러미
install.packages("패키지이름") -> 패키지 자동 설치
install.packages('ggplot2') #그래프를 그려주는 패키지
Dependency 의존성 : 하나의 패키지는 다른 패키지들이 있어야 제대로 동작할 수 있다.
# 패키지가 가지고 있는 데이터나 함수를 사용할 때,
패키지이름:: 함수/데이터 형식으로 사용.
# 패키지 이름을 명시하지 않으면 함수를 찾지 못하기 때문에 에러 발생
# library(패키지 이름) : 패키지 이름을 검색경로에 추가해서 패키지가 가지고 있는 함수 또는 데이터들을 패키지 이름을 명시하지 않아도 사용할 수 있게끔 해주는 함수.
> library(ggplot2)
> search() #검색 경로(메모리)에 로드된 패키지, 환경 정보 등을 확인할 때
[1] ".GlobalEnv" "package:ggplot2" "tools:rstudio" "package:stats"
[5] "package:graphics" "package:grDevices" "package:utils" "package:datasets"
[9] "package:methods" "Autoloads" "package:base"
>>ggplot2::qplot(x) --패키지 사용
# detach ( ) : 검색 경로(메모리)에 로드된 패키지를 검색 경로에서 삭제
> detach("package:ggplot2")
Globa Env.(전역 환경)에 저장된 변수들 리스트를 보여주는 함수 ls ( )
Global Env.에 저장된 변수를 삭제 - Rm ( )
>> RM ( ' 특정 변수 이름 ' )
>> Rm( list = ls( ) ) : 선언된 모든 변수 삭제
- 데이터 프레임
> # 영어 점수를 저장하는 벡터
> english = c( 90, 70, 80, 65)
> # 수학 점수를 저장하는 벡터
> math = c( 50, 40, 70, 55)
> # 영어 점수, 수학 점수로 이루어진 표 - 데이터 프레임
> scores = data.frame(english, math)
> scores # 데이터 프레임의 모든 데이터 출력
english math
1 90 50
2 70 40
3 80 70
4 65 55
> scores$math 특정 컬럼을 선택하고 싶을 때 $속성명
[1] 50 40 70 55
> mean( scores$math ) 평균값 계산
[1] 53.75
데이터 프레임 만들기
> scores2 = data.frame(c(1,1,2,3),c(10,20,30,40),c(90,80,70,60))
> scores2
c.1..1..2..3. c.10..20..30..40. c.90..80..70..60.
1 1 10 90
2 1 20 80
3 2 30 70
4 3 40 60
이름을 지어주자
> scores3 = data.frame(class = c(1,1,2,3),english = c(10,20,30,40),math = c(90,80,70,60))
> scores3
class english math
1 1 10 90
2 1 20 80
3 2 30 70
4 3 40 60
# CSV 파일을 읽어서 데이터프레임 만들기
- CSV ( Comma Separated Values )
데이터들을 쉼표(,)로 구분해서 저장한 파일 형식
일반적으로는 구분자로 쉼표( ,)를 사용하지만, 때로는 쉼표 대신 콜론( :) 또는 탭( \t) 등으로 데이터를 구분하는 경우도 있음.
> exam_csv <- read.csv('data/csv_exam.csv')
> exam_csv
id class math english science
1 1 1 50 98 50
2 2 1 60 97 60
3 3 1 45 86 78
4 4 1 30 98 58
5 5 2 25 80 65
6 6 2 50 89 98
7 7 2 80 90 45
8 8 2 90 78 25
9 9 3 20 98 15
10 10 3 50 98 45
11 11 3 65 65 65
12 12 3 45 85 32
13 13 4 46 98 65
14 14 4 48 87 12
15 15 4 75 56 78
16 16 4 58 98 65
17 17 5 65 68 98
18 18 5 80 78 90
19 19 5 89 68 87
20 20 5 78 83 58
- 상대 경로( Relative path ) :
파일의 위치를 현재 작업 디렉토리에서부터 시작하는 표기법
- 절대 경로 ( Absolute path ) :
파일의 위치를 최상위 디렉토리(root directory)부터 전부 표기하는 방법
ex) 현재 작업 디렉토리가 C:/dev/lab-r인 경우
상대 경로 : data/csv_exam.csv = ./data/test.csv
절대 경로 : C:/dev/lab-r/data/csv_exam.csv
# 상대경로에서 ( . ) 은 현재 디렉토리를 의미, ( . . ) 은 상위 디렉토리를 의미한다. 두 단계 올라가려면 . . / . .
../r01.r = C:/dev/r01.r
'R > R기초' 카테고리의 다른 글
R06_ 데이터 정제 (0) | 2019.10.08 |
---|---|
R05_데이터 합치기 (0) | 2019.10.04 |
R04_ 데이터 전처리 (0) | 2019.10.02 |
R03_데이터분석 기초 툴 (0) | 2019.09.28 |
R02_CSV, 엑셀파일에서 데이터 프레임 만들기 (0) | 2019.09.27 |