R 설치 : https://cran.r-project.org/bin/windows/base/
R studio 설치 : https://www.rstudio.com/products/rstudio/download/#download
Rstudio
Files 경로 세팅 후 Set as Working Directory
기본적인 R의 지식과 문법
# 콘솔창에 작성한 코드를 실행시 ctrl + enter
1)객체할당과 제거
숫자 , 스트링, boolean, factor 자료 유형 존재
x= 5, x <-5, x -> 5
y= ‘str’
z = false
factor
2) 객체 조회 : ls()
객체의 자료구조와 자료 (객체에는 7가지의 자료구조 존재)
자료구조의 구분 기준 = 차원의 수 (점, 선, 면, 정육면체 등)
1.스칼라 (상수의 개념, 0차원) : x=2.7
2.벡터 : a = c(1,2,3,4,5) 인덱스를 입력하면 해당 부분만 조회 가능
seq(시작점,끝점,증가값)
b=c(x,y,z) 벡터는 숫자와 문자와 논리형이 섞이면 데이터타입을 하나로 통일시켜버림
실행시 x,y,z를 모두 string으로 변환시킴
숫자 + 문자 + 논리값 = 문자
숫자 + 논리값 = 숫자
벡터 구성시 통일 되는 우선 순위 : 1 문자 2 숫자 3 논리값
3.매트릭스
a = c(1:24) 숫자가 담긴 벡터 a 생성
matrix (a, nrow =6, ncol = 4) 6 x 4 크기의 매트릭스에 a벡터의 값을 넣어줌
4.Array
매트릭스를 층으로 쌓아 올렸다고 생각하면 됨
a = c(1:24)
array(a,c(2,3,4)) 2*3매트릭스가42층으로 구성된 큐브모양이라고 생각
5. List
서로 다른 구조를 가진 데이터를 통합시킬 때 사용한다
하나의 벡터로 표현되는 것이 아니라 이 데이터가 담긴 리스트형태가 된다
y <- list(name=’test’, gender=’M’, age = ‘27’)
6.Factor : data를 그룹핑된 데이터로 변환
a = c(1,2,3,2,1,2,3,5,24,1)
a = as.factor(a)
범주형 데이터로 변환시켜서 레벨을 볼수있도록 나누어주는 것
7.DataFrame
쉽게 테이블이라고 생각하면 됨
data = read.csv(‘train.csv’)
summary(data) 데이터의 통합적인 정보
head(data) 데이터의 모습
str(data) 데이터의 타입
기본적으로 csv파일을 읽어올경우 R은 Factor로 읽어온다. 이걸 문자열로 받아오고 싶으면 읽어올때 설정을 변경해주면 된다.
산술연산자
사칙연산
3+5 ,5-2 ,5/2 ,5*9
16 %/% 5 몫을 출력 (결과값 3)
16 %% 5 나머지를 출력 (결과값 1)
3^2 (결과값 9)
data$Age data에서 Age 컬럼만 뽑아온 것
이걸 10,20,30,40대로 나누어 보고싶으면 산술연산자를 사용
data$Age%/%10 데이터의 범주를 설정할때 효과적으로 이용하는 방법
기초문제 문제 1.100이하의 3의배수로 이루어진 벡터 v를 만드세요 v = seq(3,100,3) 문제 2.벡터 v에서 5번째 데이터를 출력하세요 v[5] 문제 3.벡터 v에서 1,4,8번째 데이터를 출력 콤마로 넣을경우 디멘젼으로 인식하기 때문에 한번 더 묶어줘야한다. v[c(1,4,8)] 문제 4. v 에서 홀수번째 번호만 가진 데이터 출력 z = seq(1,33,2) v[c(z)] 한줄로 표현 가능 v[seq(1,100%/%3,2)] 문제 5. x가 3보다 크고 7보다 작으면서, 5보다 작거나 5보다 큰숫자이면 x=x+1 아니면 x=’정답’ 을 출력하세요 x=8 if((x>3&&x<7)&&(x!=5)){ x=x+1 }else{ sprintf('%d=정답',x) } |
조건문
비교연산자 <, <= ,> ,>=, == , !=
비교연산자의 출력결과물 = 논리값
논리연산자 &&(and), ||(or)
if문
if( 조건 ){
조건이 True일 시 실행되는 코드
} else if ( 조건 ){
조건이 True일 시 실행되는 코드
} else {
조건이 False일 시 실행되는 코드
}
ifelse문
ifelse (조건문, 참일때의 반환값, 거짓일때의 반환값)
반복문 : while, for
while(조건){
조건 만족시 실행될 코드
}
for문
for(ele in set){
print(ele)
}
for(i in c(1:9)){
print(i)
}
기초문제 문제 7. 10보다 작은 자연수들의 합을 구하시오 sum = 0 i=0 while(i<10){ sum=sum+i i=i+1 } 문제 8 . 100보다 작은 숫자들의 합을 구하세요 문제 9 . 100보다 작은 숫자들중 홀수의 합을 구하세요 . 문제 10. 100보다 작은 숫자들중 홀수의 합을 구하세요 (단, ifelse 이용 ) 문제 11. 1~100사이의 수중 홀수를 출력하세요 ( for문 이용) 문제 12. 5~15 숫자중 짝수끼리 더한 합을 구하라 ( for문 이용) |
기초적인 수학계산
sin(pi) # 1.224606
log(3) # 1.098612 밑이 자연로그 log10(100) #2 상용로그 floor(3.14) #3 버림 round(3.54) #4 반올림. 0.5일 경우 짝수로 반환한다.ceiling(3.14) #4 올림 sqlt(9) #3 제곱근 min(c(1:100)) # 최소값 max(c(1:100)) # 최대값 mean(c(1:100)) # 평균 sd(c(1:100)) # 29.01149 표준편차 sum(c(1:100)) # 합계 runif(2,1,10) 1~10사이의 2개의 수 랜덤으로 보냄
'Big Data > R' 카테고리의 다른 글
dplyr패키지 활용 (0) | 2019.02.19 |
---|