Uploaded by _영07

ComputerProgramming 1.R-Introduction

advertisement
Computer Programming : 1. R : Getting started
HYEJOON PARK
1. Introduction
1.1 Introduction to R
R 은 통계 분석과 그래프 생성에 사용되는 컴퓨터 언어 Windows, MacOS, 그리고 UNIX
운영 체제 모두에서 사용할 수 있는 언어
Why do we use R?
•
무료
–
•
Flexible
–
•
비싼 가격을 지불해야 하는 다른 통계 프로그램들과 다르게 무료로 이용 가능
R 은 프로그래밍 언어로 사용하고 개발하는데 매우 용이
빠른 업데이트
–
개발자들이 패키지를 제공하고 업데이트를 꾸준히 실시하여, 이용자들은 가장
최근의 함수 패키지를 이용할 수 있음
1.2. Starting R
1.2.1 Download R
•
R
•
Official Webpage : http://r-project.org
•
위 사이트에 접속하여 R 설치
1)
CRAN 탭 클릭
2)
원하는 언어를 선택해서 클릭
3)
운영체제에 맞는 설치 파일 클릭
4)
“install R for the first time” 클릭
5)
상단 “Download R version for system” 클릭
6)
R 파일 설치 경로 지정
7)
컴퓨터 사양에 맞게 32bit 혹은 64bit 중 선택해서 설치 or 32bit 와 64bit 모두 설치
8)
이후에는 기본으로 설정되어 있는 설정들을 건드리지 않고 ‘다음’ 클릭
•
R studio
•
R 보다 사용이 편리하여 R studio 를 사용하는 경우가 많음
•
R studio 는 R 이 설치되어 있어야 설치할 수 있음
•
Official Webpage : http://www.rstudio.com/products/rstudio
•
위 사이트에 접속하여 R studio 설치
1)
좌측의 “RStudio Desktop” 클릭
2)
“DOWNLOAD RSTUDIO DESKTOP” 클릭
3)
좌측 “Free” 아래의 “DOWNLOAD” 클릭
4)
운영체제에 맞는 설치 파일 클릭
5)
R studio 파일 설치 경로 지정
6)
R studio 이름 지정 및 바로가기 아이콘 생성 여부 설정
•
R studio 설치 완료 후 실행하면 다음과 같은 창이 생성
미리 설치한 R 프로그램의 사양에 맞게(32bit 혹은 64bit) 선택 후 “OK”를 클릭하면 R
studio 를 시행할 수 있음
•
R 과 R studio 모두 기본적으로 설치되어 있는 패키지가 있음
•
기본적으로 내재되어 있는 패키지 외의 패키지는 별도로 설치한 후 사용할 수 있음
1.2.2 install packages
•
명령어로 설치하는 법 : install.packages(“패키지명”)
•
R
1)
상단에 있는 “패키지들” 클릭 → “패키지(들) 설치하기” 클릭
2)
“Korea”로 적혀있는 중 (아무거나) 하나 선택
3)
설치하고자 하는 패키지를 찾아 클릭한 후 “OK” 클릭
•
R studio
1)
우측 하단에 있는 Packages 탭에서 install 클릭
(1) 패키지 zip 파일을 직접 다운로드하여 패키지 설치 상단 “install form”을 “Package
Archive File”로 선택 후 zip 파일 경로와 zip 파일 선택 → “install” 클릭
(2) zip 파일 없이 패키지 설치 상단 “install form”을 “CRAN”으로 선택 → “Packages”에
설치하고자 하는 패키지명 입력 → “install” 클릭
1.3. Literatures
유용한 링크 :
•
The R project web page provides the following introduction to R : http://cran.rproject.org/doc/manuals/R-intro.pdf
•
Short list of commands : http://cran.r-project.org/doc/contrib/Short-refcard.pdf
•
ggplot2 (R graphic package) : http://ggplot2.org
2. Starting R
2.1. Starting R
•
R 을 실행하면 메인창(R 𝐺𝑢𝑖)과 서브창(R 𝑐𝑜𝑛𝑠𝑜𝑙𝑒)이 생성, R studio 를 실행하면
하단이 R 𝑐𝑜𝑛𝑠𝑜𝑙𝑒 창
•
R 𝑐𝑜𝑛𝑠𝑜𝑙𝑒 창에 함수를 입력하여 작업을 시행
•
R 에서 그래프를 생성하면 새로운 창에 그래프가 그려짐
•
R studio 에서 그래프를 생성하면 우측 하단 “Plots” 탭에 그래프가 그려짐
•
R 𝑐𝑜𝑛𝑠𝑜𝑙𝑒 창 ′ > ′ 우측에 함수 입력 후 엔터를 하면 함수가 시행됨
•
함수식이 완료되지 않은 상태에서 엔터를 하면 함수식이 끝나지 않았다는 의미에서
′ + ′가 좌측에 새겨짐
•
주석을 입력하고 싶은 경우 ‘#’ 기호를 입력하고 원하는 주석을 입력
Operator
{
(
$
[ , [[
^ , **
:
%*% , %/% , %%
∗,/
+,< , > , <= , >= , == , !=
!
& , && , | , ||
←,=,→
•
Description
block operator
parenthesis
extracting a component from a list or a data frame
subscripts
power operators
negative operator
sequence operator
matrix multiplication, quotient, remainder operator
multiplication, division
sum, subtraction
logical comparison operators
negation
logical operators
allocation operator
수식에 위 기호들을 사용하는 경우 테이블의 상단에서 하단으로 갈수록 우선순위가
떨어짐
•
2+3
2-3
3*6
7/3
2^6
우선순위가 확실하지 않은 경우 “(”를 사용하여 수식을 완성
4+3*5
4+5*7
3+10/(2+3)
(1/2+1/3)^2*(1/3^2)
(10-4*2)^2/(-2)
(3+(3*(3+4))-5)/4
2^(1/3)
5%/%3
4%/%2
5%%3
4%%2
4==5
4%/%2==0
3<=4
5>4
4!=3
!(5==5)
TRUE&TRUE
TRUE&FALSE
FALSE&TRUE
FALSE&FALSE
TRUE|TRUE
TRUE|FALSE
FALSE|TRUE
FALSE|FALSE
!FALSE
!TRUE
2.2. Assignments
•
Assignments
–
•
‘←’ 기호 혹은 ‘=’ 기호를 사용해 Objects 에 값이나 함수를 부여할 수 있음
Variable Names
–
변수명으로 대소문자를 구분. 즉, 𝑥와 𝑋는 다름
–
변수명은 숫자(e.g. 1𝑥)나 기호(e.g. %𝑥)로 시작할 수 없음
–
변수명에 공백을 사용할 수 없음
x
x
6
x
x
x
y
y
<- 5
# value is assigned to x
-> x
= 7
<- x^2+3
# value is assigned to y
3+7 -> y1
z1 <- 2+5
assign('w1',2^5)
y1; z1; w1
L1 < -5
L1 = 0
L1 < -5
# not assignment
5scr <- 5 # variable names cannot start with digits
5scr
_scr <- 5 # variable names cannot start with symbols
_scr
.scr <- 5 # variable names can start with .
.scr
kor.scr <- 95
KOR.SCR
KOR.SCR <- 88
kor.scr; KOR.SCR
## Confirming / Removing objects ##
ls()
objects()
tmp <- 2*pi
tmp
rm(tmp)
tmp
ls()
remove('L1', 'w1')
ls()
rm(list=ls()) # remove all objects
ls()
2.3. Getting help
•
Getting help in R
–
help(𝑡𝑜𝑝𝑖𝑐) : 𝑡𝑜𝑝𝑖𝑐 함수와 관련된 설명문이 나타남(=?𝑡𝑜𝑝𝑖𝑐)
–
help.search(𝑡𝑜𝑝𝑖𝑐) : 𝑡𝑜𝑝𝑖𝑐과 관련된 명령어들이 나타남(=??𝑡𝑜𝑝𝑖𝑐)
–
example(𝑡𝑜𝑝𝑖𝑐) : 𝑡𝑜𝑝𝑖𝑐 함수 예시가 나타남
help(mean)
?mean
help.search("mean")
??mean
example(mean)
3. Data Objects
3.1 R Objects
•
vector : 동일한 유형의 정렬된 개체 모음
•
factor : vector 의 특수한 유형으로 범주형 변수
•
matrix(more generally array) : 벡터의 다차원 일반화
•
list : 유형이나 차원이 동일할 필요가 없는 일반적인 형태의 벡터 모음
•
dataframe : 다른 유형의 변수로 이루어질 수 있는 행렬과 동일한 구조 (행렬은 다른
유형의 변수로 이루어질 수 없음)
•
function : 여러 표현식을 묶어 한 번에 시행하는 객체
3.2 Mode of Data Objects
•
Data Objects : vectors, factors, matrices(array), lists, dataframes
•
Mode of Data Objects
Data tpye
logical
numeric
complex
character
•
•
Description
TRUE or FALSE
integer and double
complex number
character string
Examples
TRUE, FALSE
5, -2, 3.14, pi, sqrt(2)
2.1+3i, 5+0i
“This is text”, “5”
Converting Data types
–
as.logical(𝑜𝑏𝑗𝑒𝑐𝑡), as.numeric(𝑜𝑏𝑗𝑒𝑐𝑡)
–
as.integer(𝑜𝑏𝑗𝑒𝑐𝑡), as.double(𝑜𝑏𝑗𝑒𝑐𝑡)
–
as.complex(𝑜𝑏𝑗𝑒𝑐𝑡), as.character(𝑜𝑏𝑗𝑒𝑐𝑡)
–
Coercion of data types : logical → numeric → complex → character
Checking Data types
–
is.logical(𝑜𝑏𝑗𝑒𝑐𝑡), is.numeric(𝑜𝑏𝑗𝑒𝑐𝑡)
–
is.integer(𝑜𝑏𝑗𝑒𝑐𝑡), is.double(𝑜𝑏𝑗𝑒𝑐𝑡)
–
is.complex(𝑜𝑏𝑗𝑒𝑐𝑡), is.character(𝑜𝑏𝑗𝑒𝑐𝑡)
value <- 65
value
string <- "Hello world"
string
l.type <- 2<4
l.type
c.num <- 2+3i
c.num
mode(value)
mode(string)
mode(l.type)
mode(c.num)
mode(x)
"I am AB C" == "I am
AB
C"
T == TRUE # T and TRUE are the same
F == FALSE # F and FALSE are the same
3 == 3.0
x <- T
as.numeric(x) # character to numeric
as.character(x) # numeric to character
as.complex(x) # character to complex
as.logical(0)
as.logical(3+5i)
as.logical("Hello")
as.logical("1")
as.numeric(3+5i)
as.numeric("3.14")
as.numeric("pi")
as.integer(pi)
as.double("3.14")
as.complex(4)
as.character(pi)
3+TRUE
3+4i+4
"34"+5
a <- "3"
is.numeric(a)
is.character(a)
is.logical(a)
3.3 Special Values in R
•
•
NA(Not Available)
–
NA 는 사용할 수 없는 데이터를 의미
–
NA 는 일반적으로 결측값을 의미
NaN(Not A Number)
–
NaN 정의되지 않은 결과를 수학 연산으로 나타내는데 사용
–
R 에서 NaN 은 NA 를 의미 (NaN 은 사용할 수 없는 숫자 데이터(숫자
결측값)을 의미하고, NA 는 사용할 수 없는 모든 유형의 데이터를 의미(결측값))
•
Inf, -Inf
–
•
•
Inf 와 -Inf 는 각 양의 무한과 음의 무한을 의미
NULL
–
NULL 은 R 에서 ’대상이 없음’을 의미
–
값이 정의되지 않은 함수나 표현식의 결과로 NA 가 도출됨
Testing for special values
–
is.na(x) : x 내에 NA 또는 NaN 이 있는지 확인
–
is.nan(x) : x 내에 NaN 이 있는지 확인
–
is.null(x) : x 가 NULL 인지 확인
–
is.infinite(x) : x 가 양 혹은 음의 무한인지 확인
1-Inf
0/0
Inf/Inf
Inf-Inf
0*Inf
exp(709)
exp(710)
exp(-Inf)
5+NA
5+NaN
5+Inf
5-Inf
is.na(NA)
is.nan(NaN)
is.infinite(1+Inf)
is.null(NULL)
x <- NA
is.na(x)
is.nan(x)
x <- NaN
is.nan(x)
is.na(x)
Download