R은 여러 프로그래밍 언어 중의 하나로, 통계 분석 시 유용하게 쓰이는 도구 중 하나이다.
R을 사용하려면 R 프로그램과 R Studio 라는 에디터를 설치해야 한다.
모든 설치가 완료되면 R Studio를 실행하고 R Script 창에 명령어를 입력하면 된다.
version
print("실패할 준비를 하라 그래야 도전할 수 있다")
help(reserved) # 사용할 수 없는 예약어들을 보여줌
?sum # {}는 라이브러리 이름. help나 ?는 도움말 같은 것.
예) 변수이름으로 가능
a, x, x2, .x, x_y
예) 변수이름으로 불가능
1x, .2, x-y
대입연산자(=)는 함수의 디폴트값 설정할 때만 쓰지 일반적으로 R에서는 잘 사용하지 않는다.
x <- 1
x <<- 100
200 -> x
x = 1000
x <- 1
y <- 200
ls()
rm(x)
ls()
rm(list=ls())
ls()
R의 기본 숫자는 실수형(numeric)으로 입력된다.
x <- 1
class(x) # 변수 타입 확인, 실수형(numeric)
typeof(x) # 변수 타입 확인, 실수형(double)
y <- 1.0
class(y)
typeof(y)
z <- 2L # 숫자 뒤에 L을 입력하면 정수형으로 생성
class(z) # 변수 타입 확인, 정수형(integer)
typeof(z) # 변수 타입 확인, 정수형(integer)
str(x) # 변수의 타입과 값을 확인하는 함수
: 실수형 체크 함수. 실수형이면 boolean 값으로 TRUE를 리턴한다.
is.numeric(x)
is.numeric(z)
: 정수형 체크 함수.
is.integer(x)
is.integer(z)
is.numeric은 정수형이든 실수형이든 무조건 TRUE로 리턴하기 때문에 정수형인지 실수형인지 확인하고 싶을 때는 is.integer를 사용하는게 좋다.
s1 <- '오늘 하루도 행복하자'
class(s1)
typeof(s1)
s2 <- "오늘 하루도 행복하자"
class(s2)
typeof(s2)
is.numeric(s1)
is.integer(s1)
: 문자형 체크 함수.
is.character(s1)
str(TRUE)
str(FALSE)
class(TRUE)
typeof(FALSE)
x <- TRUE
str(x)
class(x)
typeof(x)
: logical, boolean 자료형인지 체크하는 함수.
is.logical(x)
y <- T # R에서 대문자 T는 TRUE
y
z <- F # R에서 대문자 F는 FALSE
z
T <- 100 # T, F 도 예약어. 예약어를 변수이름으로 사용하면 그 의미가 없어진다.
T
y <- T
y
rm(T)
ls()
y <- T
y
sum(1:10)
sum <- 100 # 함수 이름 또한 예약어. 함수이름을 변수이름으로 사용하지 말자.
sum
sum(1:100)
==(같다), !=(같지 않다), >(크다), >=(크거나 같다), <(작다), <=(작거나 같다)
& : AND 의미
| : OR 의미
TRUE & TRUE
TRUE & T
FALSE & FALSE
FALSE & F
TRUE | FALSE
FALSE | T
T & T
F & F
T | F
: 결측값(치) 데이터가 입력이 되지 않은 경우, SQL에 NULL과 동일하다.
x <- 100
y <- NA
x + y # 결측값이 있을 경우 연산은 NA
: NA 체크 함수
is.na(x)
is.na(y)
: 변수가 초기화 되지 않을 때 사용, undefined
x <- 100
y <- NULL
z <- NA
x + y # numeric(0)
x + z # NA
is.na(y)
is.na(z)
: NULL 체크 함수
is.null(y) # NULL 체크하는 함수
is.null(z) # NULL과 NA는 다르다
1+2 # 덧셈
2-1 # 뺄셈
2*3 # 곱셈
10/2 # 나눗셈
10%/%3 # 몫
10%%3 # 나머지
10^2 # 거듭제곱
10**2 # 거듭제곱
: 과학표기법(scientific notation). 과학이나 공학에서 크거나 작은 숫자를 간단하게 표현하는 표기법이다.
100000 == 1e+05
1e+05 == 1*10^5
100e3 == 100*10^3
100e3 == 100000
1e-08 == 0.00000001
지수표기법을 사용하지 않을 때 scipen 옵션의 값을 999로 설정하면 된다.
options(scipen = 999) # 100000
지수표기법을 기본값으로 설정할 때 scipen 옵션의 값을 0로 설정하면 된다.
options(scipen = 0) # 100000
x <- 100000
class(x)
typeof(x)
y <- format(x,scientific=FALSE) # 지수표기법에서 일반표기법으로 변환되지만 문자형으로 변환되기 때문에 주의!
class(y)
is.numeric(y)
is.character(y)
y + 100 # 문자 + 숫자 = 오류 발생
: 형 변환 함수. as.numeric()은 실수형으로 형 변환, as.integer()는 정수형으로 형 변환.
as.numeric(y) # 실수형으로 형변환 함수
as.integer(y) # 정수형으로 형변환 함수
as.numeric(y) + 100
as.integer(y) + 200