R?
- 오픈소스 프로그램으로 통계/데이터 마이닝 및 그래프를 위한 언어
- 오픈소스 프로젝트로 진행되고 있는 R은 통계 프로그래밍 언어인 S 언어 기반으로 만들어졌으며 통계 계산과 결과 생성 그래픽을 위한 프로그래밍 언어
- 객체지향형 x 절차지향형 o
- 코드를 만드는 것보다는 해결을 하기 위한 절차 지향형(주로 제공하는 라이브러리를 이용한다.)
- 데이터 프레임 구조를 가져온다.
- 백터 : 1차원 배열
- 배열 : 2차원 배열
- 리스트 : 다차원배열
- 데이터프레임구조 : 백터+배열+리스트
Nosql
- 빅 데이터 처리를 위한 비관계형 데이터베이스 관리 시스템(DBMS)
- 전통적인 관계형 데이터베이스 관리 시스템(RDBMS)과는 다르게 설계된 비관계형(non-relational) DBMS로, 대규모의 데이터를 유연하게 처리할 수 있는 것이 강점
- 노에스큐엘(NoSQL)은 테이블-컬럼과 같은 스키마 없이, 분산 환경에서 단순 검색 및 추가 작업을 위한 키 값을 최적화하고, 지연(latency)과 처리율(throughput)이 우수
- 대규모 확대가 가능한 수평적인 확장성의 특징
- NoSQL에 기반을 둔 시스템의 대표적인 예로는 아파치 카산드라(Apache Cassandra), 하둡(Hadoop), 몽고디비(MongoDB) 등
빅데이터 활용
- 미래예측
- 앙상블 기법(시장예측)
- 선호도 분석
- 사회적 분위기 파악
- 트렌드 감지 및 예측
빅데이터 분석 기법
1.연관규칙학습(Association Rule Learning)
- 상품 혹은 서비스간의 관계를 살펴 보고 유용한 규칙을 찾아 내고자 할 때
- cctv(백화점/마트)
2.유전 알고리즘(Genetic Algorithms)
- 환경, 생태계쪽에서 사용하는 방식
- 병렬적이고 전역적인 탐색 알고리즘
- 다윈의 적자생존 이론을 기본 개념으로 함
3.회귀분석(Regression Analysis)
- 두 변수 간의 관계에 분명한 방향이 있을 때
- 반응변수와 설명변수
- 혈압과 체질량 지수
4.유형분석(Classification Tree Analysis)
- 사용자는 어떤 특성을 가진 집단에 속하는가? 와 같은 문제를 해결하고자 할 때 사용
5.기계학습(Machine Learning)
- 머신러닝에 관련된 학습
- 지도 학습
- AI를 위한 기초 학습
- 학습용 데이터가 필요하다
6.소셜네트워크 분석(Social Network Analysis)
- 사회관계망 분석이라 불리는 소셜네트워크분석은 특정인과 다른 사람이 몇 촌 정도 인가?를 파악할 때 사용
- 오피니언 리더, 즉 영향력 있는 사람을 찾아 내 분석
7.감정분석(Sentiment Analysis)
R 설치방법
1. R 설치 방법
2. R 스튜디오 설치 방법
* 한글 형태소 분석을 하려면 JAVA가 필요함.
필요 자료 ▼
* 관리자 권한으로 실행
명령어
기본적으로 설치된 패키지 보기
library(help="base")
설치되지 않은 패키지 설치하기
패키지 설치 위치
#배열을 x에 넣기
#백터 원소가 하나 일 때
#산술연산
seq()
1부터 3씩 증가하는 10이하 만들고 싶을 때
x <- seq(1,10, by=3)
1~10사이를 같은 간격으로 하는 5개의 숫자
y <- seq(1,10,length.out=5)
백터
rep()
x 백터를 2번 반복
rep(x, times=2)
x 백터의 각 원소를 2번 반복
rep(x,each=2)
백터의 원소
x <- c(1, 2, 3, 4, 5)
x[2]
# 두 번째 원소
x[c(1, 3, 5)]
# 1, 3, 5번째 원소
x[-c(2, 4)]
# 2, 4번째 제외한 원소
x[x>2]
# 원소의 값이 2보다 큰 값들만 출력
x[x>=2 & x<=4]
# 원소의 값이 2 이상이고 4 이하인 값들만 출력
x[2] <- 20
# 2번째 원소의 값을 20으로 수정
x[c(3, 4)] <- 15
# 3, 4번째 원소들의 값을 모두 15로 수정
x[x<=15] <- 10
# 15 이하인 원소 값들을 모두 10으로 수정
함수를 이용한 백터 연산
x <- seq(1:10)
mean(x)
# x 벡터의 원소 값들의 평균
var(x)
# x 벡터의 원소 값들의 분산
sd(x)
# x 벡터의 원소 값들의 표준편차
sqrt(x)
# x 벡터의 원소 값들의 제곱근
length(x)
# x 벡터의 원소 값들의 개수
abs(x)
# x 벡터의 원소 값들의 절대값
배열
array()
1~3까지의 정수를 1행 3열의 1차원으로 표시
x<- array(1:3,dim=c(3)) = x <- seq(1:3)과 동일
1~6까지의 정수를 2행 3열의 2차원으로 표시
x<- array(1:6,dim=c(2,3))
x[1, 3]
# 1행 3열 값
x[, 3]
# 3열의 모든 값들
x[, -3]
# 3열을 제외한 모든 열의 값들
x[1, 2] <- 20
# 1행 2열의 값을 20으로 수정
names <-
list(c("1행", "2행"),
c("1열", "2열", "3열"))
# 행과 열 이름을 갖는 두 벡터로 하는 리스트 생성
행렬
행과 열로 구성 되는 2차원 배열
matrix()
1~6사이의 정수를 행의 수가 2인 행렬로 만듬
x <- matrix()
백터의 결합
리스트
함수 : list()
데이터 프레임
- 동일한 속성들을 가지는 여러 개체들로 구성
- 2차원적인 데이터 구조
- 속성들 간 데이터 유형은 서로 다를 수 있음
x<-data.frame(성명=c("홍길동","손오공"),나이=c(20,30),주소=c("서울","대전")
x<-cbind(x,학과=c("전산학","경영학")) <==데이터 프레임 x열(학과) 추가
x<-rbind(x,data.frame(성명="장발장", 나이=40, 주소 = "파리", 학과="전산학")) <==데이터 프레임 x에 행(장발장)추가
내장되어있는 데이트세트 출력
quakes <= R에 내장된 데이터 명 출력
head(quakes, n=10)
# 데이터의 앞부분 10개 행 보기(디폴트 n은 6)
tail(quakes, n=6)
# 데이터의 뒷부분 일부 보기(디폴트 n은 6)
names(quakes)
# ‘quakes’ 데이터 세트의 변수명 보기
str(quakes)
# ‘quakes’ 데이터 세트의 데이터 구조 보기
dim(quakes)
# ‘quakes’ 데이터 세트의 차원 보기(행과 열의 수)
summary(quakes)
# ‘quakes’ 데이터 세트의 각 변수별 데이터 요약 정보
summary(quakes$mag)
# ‘quakes’ 데이터 세트 내의 mag 변수에 대한 최솟값, 25백분위수, 중앙값, 평균값, 75백분위수, 최댓값
데이터파일 저장 및 읽기
write.table(quakes,"C:/Rwork/quakes.txt",sep=",") =>파일 만들기
x<-read.csv("C:/Rwork/quakes.txt", header=T) = > 파일 읽어 오기
x<-read.csv(file.choose(),header=T) = > 읽어 드릴 파일을 선택할 수 있는 창이 나타남
웹의 데이터파일 읽기
시각화
바차트
heigth<-c(9,15,20,6) #판매액 할당
name<-c("영업 1팀","영업2팀","영업3팀","영업4팀") #부서명할당
barplot(heigth,names.arg=name,main="부서별 영업 실적", col=rainbow(length(heigth)),xlab="부서",ylab="영업실적(억원)")#각부서별로 heigth값을 막대그래프로 출력
파이차트
x<-c(9,15,20,6) #영업 실적 할당
label<-c("영업 1팀","영업2팀","영업3팀","영업4팀") #부서명할당
pie(x,labels=label,main="부서별 영업 실적") #파이차트 출력(데이터, 라벨,제목)
작업순서
1. 작업하기전에는 반드시 작업할 디렉터리를 지정하고 작업시(분석할) 필요한 데이터들을 저장한다.
#아래와 같이 지정.
setwd("c:\\r_temp")
#현재 설정된 작업 디렉터리 확인
getwd()
#또는 아래와 같이 지정
setwd("c:\\r_temp")
getwd()
2. 화면에 결과를 출력 - print()와 cat() 사용
print(1+3)
print('a') #문자열
print(pi,digits=3) # digits : 자리수 지정 가능
* 한 가지 값밖에 나오지 않는다.
cat() : 여러개의 데이터를 출력하는 함수
cat(1, ' : ', 'a','\n',2,':','b') #숫자와 문자 여러개를 한꺼번에 출력
1;2;3; #여러 개의 출력 명령을 연속적으로 실행할 경우, 세미콜론(;)을 사용
숫자형과 주요 산술 연산자
as.numeric( ) : 문자형 숫자를 연산 가능한 숫자로 변경하는 함수
문자형
전부 문자열 형태로 인식. ( “ “ 또는 ‘ ‘ 을 사용)
class( ) : 데이터 형을 반환 시켜주는 함수
논리값
데이터들을 비교해서 참일 경우, TRUE / 거짓일 경우, FALSE를 반환
컴퓨터 : bit를 사용하여 동작되는 기기.
bit : 0과 1, 두 가지 경우의 수만 존재.
bit 값 중에서 0은 거짓, 0 이외의 값은 모두 참.
두 개 이상의 값을 연산했을 경우, 참과 거짓을 찾지 위해 여러 가지 연산자가 존재.
& : 양쪽의 데이터가 모두 참일 경우에만 결과가 참. & 기호를 곱하기로 간주. (1 x 1 = 1, 1 x 0 = 0)
| : 두 값 중에서 한가지만 참이어도 결과는 참. | 기호는 더하기로 간주. (1 + 0 = 1, 1 + 1 = 1)
! : 해당 데이터가 아닌 것이라는 의미를 보유. NOT 라고 호칭
NA 형 & NULL 형
NA : 잘못된 값이 들어 올 경우 ( Not Applicable , Not Available, 결측값).
값이 있어도 정해진 범위 안에 있는 값이 아니라서 사용할 수 없는 경우.
NA 값이 포함되어 있을 경우 연상르 수행하면 결과 값은 NA.
is.na(변수명) : 변수의 값이 NA 인지를 확인하는 함수
cat(1,NA,2) #NA가 그대로 출력
cat(1,NULL,2) #NULL값이 제거 되고 출력
sum(1,NA,2) # NA를 더하니까 결과에 NA로 출력
sum(1,NULL,2)#NULL값은 제외해버리고, 나머지 값만 더해서 결과가 출력
*NA값은 연산에 그대로 반영되기 때문에 값은 수동으로 제거해야한다.
*na.rm : NA 값을 수동으로 제거할 수 있는 파라미터. na.rm=T (NA 값을 Remove)
sum(1,2,NA,na.rm=T)#na.rm=T으로 NA값을 제거하고 계산한다.
Factor 형
여러 번 중복으로 나오는 데이터들을 각각 모아서 대표 값으로 출력해주는 데이터 형
c( ) : combine value 라는 의미로 여러 개의 값을 한꺼번에 처리할 때 사용되는 함수.
# Factor 형
setwd("c:\\r_temp")
txt1<-read.csv("factor_test.txt")
txt1
factor1<-factor(txt1$blood)
factor1
summary(factor1)
gender_F<-factor(txt1$gender)
gender_F
summary(gender_F)
stringsAsFactors=FALSE : 데이터를 Factor 형태로 바꾸지 않고, 그대로 사용하고 싶을 경우.
날짜와 시간
Sys.Date() #대소문자 주의! 날짜만 보여주는 함수
Sys.time() #날짜와 시간까지 보여주는 함수
date()#미국식 날짜와 시간을 보여주는 함수
as.Date('2014-11-01')#홀따옴표나 겹따옴표를 사용
as.Date("01-11-2014",format="%d-%m-%Y")#날짜 형태를 지정
as.Date("2014년 5월 15일",format="%Y년 %m월 %d일")#날짜 형태를 지정
as.Date(10,origin="2014-11-10")#주어진 날짜 기준으로 10일 후의 날짜
as.Date(-10,origin="2014-11-10")#주어진 날짜 기준으로 10일 전의 날짜
class("2014-11-30") #문자로 확인
as.Date("2014-11-30") - as.Date("2014-11-01") #날짜로 변경해서 계산
as.Date("2014-11-30")+5 # 5일 후 날짜 출력
':: IT > R' 카테고리의 다른 글
[빅데이터] 전처리 작업, 오라클 연결, xml/json 다루는 방법, Markdown (0) | 2020.04.07 |
---|---|
[빅데이터]20200402 데이터 전처리 (0) | 2020.04.06 |
[빅데이터] 텍스트 마이닝, 등 (0) | 2020.04.03 |
[빅데이터] 20200401 qplot, 데이터 프레임, 외부데이터 이용, 데이터 수정 및 파악, 파생변수, 조건문, 데이터 전처리, 그래프 그리기 (0) | 2020.04.01 |
[빅데이터] 20200331 RStudio 설치, plot, 워드클라우드 (0) | 2020.03.31 |