RStudio 패키지 설치 및 사용
#패키지 설치 install.packages("패키지 이름") #패키지 사용 library("패키지 이름") |
산술 연산 함수
함수 | 의미 | 사용 예 |
log() | 로그함수 | log(10), log(10, base = 2) |
sqrt() | 제곱근 | sqrt(36) |
max() | 가장 큰 값 | max(3,9,5) |
min() | 가장 작은 값 | min(3,9,5) |
abs() | 절대값 | abs(-10) |
factorial() | 팩토리얼 | factorial(5) |
sin(), cos() , tan() | 삼각함수 | sin(pi/2) |
R에서 사용할 수 있는 값들의 자료형
자료형 | 사용 예 | 비고 |
숫자형 | 1,2,3, -4, 12.8 | 정수와 실수 모두 가능 |
문자형 | 'Tom' , 'Jane' | 작은 따옴표나 큰 따옴표로 묶어서 표현 |
논리형 | TRUE , FALSE | 반드시 따옴표가 없는 대문자로 표기하며, T나 F로 줄여서 사용하는 것도 가능 |
특수값 | NULL | 정의되어 있지 않음을 의미하며, 자료형도 없고 길이도 0 임 |
NA | 결측값(missing value) | |
NaN | 수학적으로 정의가 불가능한 값 ex) sqrt(-3) |
|
Inf , -Inf | 양의 무한대(Inf) , 음의 무한대(-Inf) |
벡터 ( Vector )
1차원 배열 데이터
v1 <- 50:90 v2 <- c(1,2,5,50:90) |
일정한 간격의 숫자로 이루어진 벡터 생성 : seq()
v3 <- seq(1,101,3) # 1~101 까지 3 간격으로 벡터를 생성해서 v3에 담아라 v4 <-seq(0.1,1.0,0.1) # 0.1 ~ 1.0 까지 0.1 간격으로 벡터를 생성해서 v3에 담아라 |
반복된 숫자로 이루어진 벡터 생성 : rep()
rep('반복대상값, '반복횟수')
v5 <- rep(1,times=5) #1을 5번 반복 v6 <- rep(1:5,times=3) #1에서 5까지 3번 반복 v7 <- rep(c(1,5,9),times=3) # 1, 5, 9 를 3번 반복 |
벡터의 원소값에 이름 지정 : names()
score <- c(90,85,70) # 성적 score names(score) # score에 저장된 값들의 이름을 보이시오 names(score) <- c("John","Tom","Jane") # 값들에 이름을 부여 names(score) # score에 저장된 값들의 이름을 보이시오 score # 이름과 함께 값이 출력 |
벡터에서 여러 개의 값을 한 번에 추출하기
d <- c(1,4,3,7,8) d[c(1,3,5)] #1, 3, 5 번째 값 출력 d[1:3] # 처음 세 개의 값 출력 d[seq(1,5,2)] # 홀수 번째 값 출력 d[-2] # 2번째 값 제외하고 출력 d[-c(3:5)] # 3~5번째 값은 제외하고 출력 |
1과 지정한 숫자사이의 정수로 구성 : sequence()
sequence(3) # 결과값은 1,2,3 sequence(3.3) # 결과는 1,2,3 |
Q1. y<-c(1,2,3,NA) 일 때 3*y ?
① 3 6 9 NA
② NA NA NA NA
③ 3 6 9 NaN
④ 3 6 9 3NA
Q2. 다음 중 나머지 세 개의 명령과 다른 결과를 주는 명령은 무엇인가?
① seq(1,10,2)
② seq(from=1,to=10,by=2)
③ seq(from=1,to=10,length=5)
④ 1:5*2-1
변수이름 규칙
올바른 변수명 | 올바르지 않은 변수명 |
a b a1 a2 .x |
2a .2 a-b |
Q3. 다음 중 R에서 사용하는 객체의 이름으로 적당하지 않은 것은?
① .3ab
② abc
③ a.b
④ a2b
벡터의 접근
적용 | x[1] | x[-1] | x[c(1,2)] |
의미 | [ ] 안에 원소를 가져온다. | [ ] 음의 인덱스를 사용해 특정요소만 제거 |
여러 위치에 저장된 값을 한번에 가져올 수 있음. |
*다른 프로그램언어는 첫 번째 요소를 0으로 인식
벡터에 적용 가능한 함수
함수명 | 설명 |
sum() | 벡터에 포함된 값들의 합 |
mean() | 벡터에 포함된 값들의 평균 |
median() | 벡터에 포함된 값들의 중앙값 |
max(), min() | 벡터에 포함된 값들의 최댓값 , 최솟값 |
var() | 벡터에 포함된 값들의 분산 |
sd() | 벡터의 포함된 값들의 표준편차 |
sort() | 벡터에 포함된 값들을 정렬(오름차순이 기본) |
range() | 벡터에 포함된 값들의 범위(최솟값 ~ 최댓값) |
length() | 벡터에 포함된 값들의 개수(길이) |
벡터들 길이가 동일하지 않은 경우
* 벡터의 재활용 규칙
길이가 서로 다른 두 벡터에 대해 연산을 할때,
짧은 벡터의 처음으로 돌아가 연산이 끝날 때 까지 원소들을 재활용
Q4. 아래의 R 스크립트를 실행하여 얻게 되는 결과로 가장 적절한 것은?
x<-c(1,2,3) y<-c(2,x,3) x+y |
벡터의 재활용 규칙 사용
Q5. 다음 보기의 명령 중 에러가 발생되는 것은 무엇인가?
fruit<-c(1,2,3,4) names(fruit)<-c(“apple”,”peach”,”orange”,”banana”) |
① fruit[c(“apple”,”peach”)]
② fruit[1:2]
③ fruit[2:3]
④ fruit[-1:3]
함수에 대한 도움말 확인
R에서는 함수 사용 메뉴얼을 사용자에게 제공하는데, R 스튜디오에서는 도움말(Help) 창을 이용하여 내용을 확인할 수 있다.
또는 편집 창에서 함수 이름을 드래그하여 선택한 뒤 [F1] 을 눌러도 동일한 결과를 얻을 수 있다.
벡터의 논리연선자 사용시 주의할 점
d <- c(1,2,3,4,5,6,7,8,9) > sum(d>5) [1] 4 [1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE |
원래는 6+7+8+9 의 값이 나올줄 알았지만 F / T 값으로 나오기때문에 T + T + T + T 즉 1 + 1 + 1 + 1 인 4가 결과로 나왔다.
그럼 원래처럼 하려면 어떻게 할까
>sum(d[d>5]) [1] 30 |
이렇게 하면 원래 원하던 값을 얻어낼 수 있습니다.
Q7. 다음 중 아래의 R코드 출력 결과?
m<-matrix(1:6,nrow=3) m[m[,1]>1 & m[,2]>5,] ? m [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6 |
m[,1]>1 의 논리연산자 값은 ->[1] FALSE TRUE TRUE
m[,2]>5 의 논리연산자 값은->[1] FALSE FALSE TRUE
m[,1]>1&m[,2]>5 의 논리연산자 값은->[1] FALSE FALSE TRUE
이것은 다음과 같습니다.m[c(FALSE,FALSE,TRUE),] -> 이것은 m의 구성요소 중 TRUE가 있는 위치 요소를 의미합니다.
결국 m[3,] 를 의미합니다.
리스트(list)
벡터가 동일한 자료형의 값들을 1차원 형태로 저장하는 수단이라고 한다면 리스트는 서로 다른 자료형의 값들을 저장하고 다룰 수 있도록 해주는 수단이다.
(KEY, 값) 형태의 연관 배열
x[[1]] 의 Key의 값만 출력
x[1] (Key, 값)을 담고 서브리스트 출력
ds <- c(90,85,70,84) my.info <- list(name='Tom', age=60, status=TRUE, score=ds) my.info #리스트에 저장된 내용을 모두 출력 my.info[[1]] #리스트의 첫 번째 값을 출력 my.info$name #리스트에서 값의 이름이 name인 값을 출력 my.info[[4]] #리스트의 네 번째 값을 출력 |
배열(Array)
x <- array(1:12,dim=c(2,2,3))
, , 1 [,1],[,2] [1.] 1 3 [2.] 2 4 , , 2 [,1],[,2] [1.] 5 7 [2.] 6 8 , , 3 [,1],[,2] [1.] 9 11 [2.] 10 12 |
x [ 1, 1, 1 ] 값은 ? 1
x[1 , 2 , 3] 값은? 11
x[,,3] 값은?
[,1],[,2]
[1.] 9 11
[2.] 10 12
팩터(factor)
문자형 데이터가 저장된 벡터의 일종이다.
저장되는 문자값들이 어떤 종류를 나타내는 값일 때, 예를 들어 성벌, 혈액형, 선호 정당 등과 같이 저장할 문자값들이 몇 종류로 정해져 있을 때 팩터를 사용한다. 팩터는 문자형 벡터를 만든 뒤 factor() 함수를 이용하여 변환한다.
bt <- c('A','B','B','O','AB','A') bt.new <-factor(bt) |
팩터의 역할 중 하나는 이미 지정된 값의 종류 외에 다른 값이 들어오는 것을 막는 것이다.
팩터는 사전에 정의된 값 외에 다른 값들은 입력하지 못하도록 하는 효과가 있다.
gender <- factor("m",c("m","f")) gender levels(gender) <- c("male","female") # level 값 변경 |
행렬/매트릭스 (matrix)
매트릭스는 데이터 테이블의 모든 셀 값들이 동일한 자료형일 때 사용이 되고,
자료형 다른 컬럼들로 구성된 데이터 테이블은 데이터프레임(data frame)의 형태로 저장되고 활용된다.
z <- matrix(1:20, nrow=4, ncol=5) z2 <- matrix(1:20, nrow=4, ncol=5, byrow=T) |
1:20 은 행렬/매트릭스의 저장될 값(1~20)을 지정한 것이다.
nrow=4는 매트릭스 행의 수, ncol=5는 매트릭스 열의 수를 의미한다.
매트릭스에 저장될 값들을 행 방향으로 채우기 : " byrow=T "
두 개의 벡터를 행 방향으로 묶어주는 함수 : rbind()
> m2 <- rbind(x,y) > m2 |
두 개의 벡터를 열방향으로 묶어주는 함수 : cbind()
> m1 <-cbind(x,y) > m1 |
'Data Science > R' 카테고리의 다른 글
[R] 그래프 시각화 ( 산점도 scatter plot, scatter graph) (0) | 2020.06.15 |
---|---|
[R]. 그래프 시각화 ( 사분위수 , 히스토그램 , 상자그림 ) (0) | 2020.06.11 |
[R]. 그래프 시각화 ( 도수분표표 , 막대그래프 , 원그래프 ) (0) | 2020.06.11 |
[R] R , R studio 설치 및 한글 깨짐 해결법 (0) | 2020.06.10 |
[R] 기본 요약 정리 ( data frame , 데이터 읽기/쓰기 , apply() 함수 , 데이터 찾기 ) (1) | 2020.05.12 |