2020. 7. 13. 15:46ㆍADP | ADsP with R/Knowledge
R언어와 사용법에 관한 게시글들은 "한국 데이터 산업진흥원"에서 출간한 국가공인 ADP/ADsP자격증을 위한 "데이터 분석 전문 가이드"에 서술된 수준에 한정지어 다루어 볼 것입니다.
ADP필기 준비를 위한 R의 기본적인 문법과 패키지들을 학습을 목표로 합니다.
1. R의 기초통계연산
1) 수열 생성하기
※ rep()
rep(1,3)
결과 : 1 1 1
rep(a,b) - a를 b번 반복한다
rep(2:5, 3)
결과 : 2 3 4 5 2 3 4 5 2 3 4 5
rep(a:b,c) - a부터 b까지를 c번 반복한다
※ seq()
seq(1,3)
결과 : 1 2 3
seq(a,b) - a부터 b까지를 1씩 증가하는 수열을 만든다
seq(1,11, by=2)
결과 : 1 3 5 7 9 11
seq(a,b, by = c) - a부터 b까지를 c씩 증가하는 수열을 만든다
seq(1,11,length=6)
결과 : 1 3 5 7 9 11
seq(a,b, length = c) - a부터 b까지 전체 수열의 개수가 c개가 되도록 자동적으로 증가하는 수열을 생성한다..
2) 기초적인 수치 계산
※ 벡터의 연산
a = 1:10
- 변수 a에 1부터 10까지 1씩 증가하는 벡터를 대입
a
결과 : 1 2 3 4 5 6 7 8 9 10
- a의 값을 출력한다.
a + a
결과 : 2 4 6 8 10 12 14 16 18 20
- 길이가 같은 벡터의 같은 위치끼리 더한다.
a - a
결과 : 0 0 0 0 0 0 0 0 0 0
- 길이가 같은 벡터의 같은 위치끼리 뺀다.
a * a
결과 : 1 4 9 16 25 36 49 64 81 100
- 길이가 같은 벡터의 같은 위치끼리 곱한다.
a / a
결과 : 1 1 1 1 1 1 1 1 1 1
- 길이가 같은 벡터의 같은 위치끼리 나눈다.
※ 벡터의 변환
a = c(2,7,3)
a
- R에서는 기본적으로 열벡터가 생성된다.
t(a)
- t()로 벡터/행렬의 전치를 구할 수 있다.
A = a %*% t(a)
- %*% 는 행렬곱 연산이다.
※ 행렬의 연산
mx = matrix(c(23,41,12,35,67,1,24,7,53), nrow = 3)
mx
- 9개의 데이터를 가지고 3행짜리 행렬을 생성하였다.
5 * mx
- 행렬에 스칼라를 곱한다.
solve(mx)
- 행렬 mx의 역행렬을 구한다.
※ 기초 통계량
a = 1:10
a
- 1부터 10까지 1씩 증가하는 값을 가진 변수 a를 생성한다.
mean(a)
- 변수 a의 평균을 구한다.
var(a)
- 변수 a의 분산을 구한다.
sd(a)
- 변수 a의 표준편차를 구한다.
sum(a)
- 변수 a의 원소의 합계를 구한다.
median(a)
- 변수 a의 중간값을 구한다.
log(a)
- 변수 a의 로그값을 구한다.
b = log(a)
cov(a,b)
- 변수 a,b간의 공분산을 구한다.
cor(a,b)
- 변수 a,b간의 상관계수를 구한다.
summary(a)
- 변수 a의 4분위값과 최대값, 최소값을 구한다.
2. R의 기초 데이터 핸들링
여기서 기초 데이터 핸들링이란, R의 인덱싱과 슬라이싱 문법에 대해서 알아보는 것이다.
1) 벡터형 변수
b = c("a","b","c","d","e")
b
- a~e까지 포함된 텍스트 벡터를 생성하였다.
b[2]
- 벡터 내에서 2번째 해당하는 값을 가져온다
b[-4]
- 벡터 내에서 4번째 해당하는 값만 제외하고 가져온다
b[c(2,3)]
- 벡터의 2,3위치 값을 가져온다.
2) 행렬 / 데이터 프레임 변수
기본적인 인덱싱 슬라이싱은 위의 벡터와 동일하다, [c(a,b)], [-a], [a,b], [a:b]를 사용할 수 있다.
income = c(100,200,150,300,900)
car = c("kia","hyundai","kia","toyota","lexus")
marriage = c(FALSE,FALSE,FALSE,TRUE,TRUE)
mydat = data.frame(income, car, marriage)
mydat
- 각각 다른 타입의 벡터를 생성하여, 하나의 데이터 프레임으로 합쳤다.
mydat[3,2]
- 3행 2열의 데이터를 가져온다.
mydat[,2]
- 2열의 모든 데이터를 가져온다.
mydat[4,]
- 4행의 모든 데이터를 가져온다.
mydat[-1]
- 1열을 제외한 모든 데이터를 가져온다.
mydat[-2,-3]
- 2행과 3열을 제외한 모든 데이터를 가져온다.
3. 반복문과 조건문
1) for 반복문
a = c() # 빈 a벡터 선언
for (i in 1:9) { # i가 1부터 9까지 1씩 증가
a[i] = i *i # a의 i번째 원소에 i제곱을 대입
}
a
- 기본적으로 파이썬의 for문 형태와 비슷하다. 하지만 c언어처럼 괄호가 쓰인다.
isum = 0
for (i in 1:100) {
isum = isum + i
}
cat("1부터 100까지 합=",isum,"입니다.")
2) while 반복문
x = 1
while (x<5) { # 조건에 괄호 필수
x = x + 1
print(x)
}
- R은 기본적으로 반복문에서 조건을 넣는 부분에 괄호가 항상 들어가야한다.
3) if ~ else 조건문
StatScore = c(88,90,78,84,76,68,50,48,33,70,48,66,88,96,79,65,27,88,96,33,64,48,77,18,26,44,48,68,77,64,88,95,79,88,49,30,29,10,49,88)
over70 = rep(0,40)
for (i in 1:40){
if (StatScore[i] >= 70) over70[i] = 1
else over70[i] = 0 }
over70
sum(over70)
- if ~else 조건문에 따라 70점이 넘을경우 over70의 index를1로 바꾸었다.
'ADP | ADsP with R > Knowledge' 카테고리의 다른 글
[ADP] R - 결측값 처리와 이상값 탐색 (0) | 2020.07.14 |
---|---|
[ADP] R-데이터 마트(2) / sqldf / plyr / data.table (0) | 2020.07.14 |
[ADP] R-데이터 마트(1) / reshape패키지(metl,cast함수) (1) | 2020.07.13 |
[ADP] R-기초(3) : 사용자 정의 함수 / 그래픽 기능(plot) / 기타 유용한 기능 (0) | 2020.07.13 |
[ADP] R-기초(1) : 패키지 설치/R의 데이터 구조/외부 데이터 불러오기 (0) | 2020.07.09 |