일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- working directory
- c()
- 데이터 입출력
- R 기초
- factor
- CSV
- ROTTEN TOMATOES
- 연습문제
- vector 연산
- Crawling
- data frame
- R 개요
- Names
- 정규표현식
- 변수 선언
- scraping
- 데이터 타입의 우선순위
- seq
- 문자열처리
- length
- 스크래핑
- :
- stringr
- 네이버 영화 댓글
- TXT
- 데이터 타입
- vector 비교
- REP
- 함수
- Data Structure
- Today
- Total
study blog
R 기초 본문
1. R 개요
1. R 라이브러리 중 java 기반으로 되어 있는 것들을 사용할 수 있도록 JDK를 먼저 설치해야 한다.
2. R은 통계 계산을 위한 프로그래밍 언어이자 데이터분석 소프트웨어
AT&T의 Bell연구소에서 S라는 통계언어의 문법부분 통계처리부분 참고해서 만들었다.
1993년 통계학과 교수 로스 이하카(Ross Ihaka)와 로버트 젠틀맨(Robert Gentleman) 2명이 개발
→ 일반 사람들도 쉽게 통계적 데이터분석을 할 수 있도록 개발
3. R로 무엇을 할 수 있을까?
- 통계분석 : 기초통계, 가설검정
- 머신러닝 모델링: SVM, Random Forest, Deep Learning
- 텍스트 마이닝: 문장속의 단어 빈도를 이용하여 글의 성향을 분석
- 이미지분석, 사운드 분석
4. 데이터 분석을 할 수 있는 다른 패키지는 무엇이 있나요? (데이터 툴적인 측면에서 비교)
- SAS, SPSS: 기능이 더 좋으나 유료 - R은 속도가 느림.
- Excel: 무료이면서 통계처리가 가능하나 기능이 너무 빈약
- R: 기능은 유료에 버금가면서 무료
5. 데이터 분석을 할 수 있는 다른 프로그래밍 언어는 어떤게 있나요?
- R: 일반적으로 데이터 분석 후 결과를 어딘가에 Reporting 하거나 차트로 표현하는데 최적
- Python: 데이터 분석 후 해당 결과를 다른 시스템에 연동시키는 목적으로 사용
6. R의 장점
- 오픈소스: 무료로 사용가능
- 오픈 소스 생태계: CRAN 사이트에서 여러 패키지를 공유 - 최신 분석 기법들을 손쉽게 이용할 수 있음
- 프로그래밍 방식의 데이터 분석: 재현성을 확보할 수 있음
7. R 다운로드
CRAN에서 platform에 맞는 파일을 다운로드 후 설치
→ windows 시스템에 설치할 때 로그인 아이디가 한글인 경우 설치 안됨 ( 영문 ID를 생성 후 설치)
IDE (개발툴)이 필요함! RStudio를 다운로드해 설치
8. Rstudio 실행 → 화면구성 알아보기
- Source창: 스크립트 파일을 생성해서 코드를 작성
- Console창: 코드의 실행결과가 출력
- Environment 창(환경창) : 코드 실행 시 사용된 변수의 값을 알려줌
- 파일창: 현재 사용하는 폴더( working directory )를 확인할 수 있음
9. R 프로젝트를 생성
- R프로젝트 생성 시 한글이 들어 있는 경우 오류가 발생할 수 있음
프로젝트 명과 폴더명에 한글이 들어가지 않도록 처리
프로젝트 생성 후 약간의 설정을 해 보자.
- 줄바꿈 설정: global option → code → soft-wrap R source files 클릭
- 유니코드 인코딩 설정 (UTF-8): " → Saving → default text encoding → UTF-8
- 프로젝트 옵션 : tool → project option → code editing → UTF-8
2. 변수 선언
# 변수명 설정
myResult # camelcase notation #관용적 표현 - 가능한 이 표현 이용하기
MyResult # pascal notation
my_result # 아니면 이거 이용
myresult # 어색한 표현
# 변수 출력 - print와 cat 이용하기
print(myResult)
print("결과값은 : " + myResult) #오류! 문자열과 숫자는 더할 수 없음
여러 값을 출력하려면 cat() 이용 : 문자와 숫자 같이 출력
cat("결과값은:", myResult)
#출력형태 지정
options(digits=7) # 설정: 몇자리로 숫자 자릿수 default값을 줄 것이냐 → 기본값은 7
sprintf("%.7f",result) # .:소수부분. 소수점 7번째까지 소수로 출력하겠다 → 결과는 문자열로 출력되는 점 주의!!
sprintf("%.9f") # 소수점 9자리까지 출력. 10번째에서 반올림.
# 멤버를 이용한 변수 선언
#한 제품에 대한 세 가지 속성을 변수로 나타낼 때 : 멤버형태로 변수 표현
goods.price = 3000
goods.code = "001"
goods.name = "냉장고"
3. Operator (연산자)
# 나누기: /
100/3 # 33.33333
# 몫 구하기: %/%
100 %/% 3 # 33
# 나머지 구하기: %%
100%%3 # 1
# 비교연산자: ==, !=
var1 = 3
var2 = 3
var1 == var2 # TRUE
var1 != var2 # FALSE
# 논리연산자: AND연산(&, &&), OR연산(|, ||)
1) & : 양쪽 값이 TRUE일 경우에만 TRUE, 그 이외에는 모두 FALSE
TRUE & TRUE # TRUE
TRUE & FALSE # FALSE
FALSE & FALSE # FALSE
2) | : 양쪽 값 중 하나라도 TRUE이면 TRUE 반환
TRUE | TRUE # TRUE
TRUE | FALSE # TRUE
FALSE | FALSE # FALSE
3) &&, || : scalar 연산일 경우 &, | 와 동일하나, vector 연산일 경우 첫 번째 결과만을 출력한다.
4. R의 Data Type
R에는 Data Type이 크게 2가지 존재한다.
1. 기본 데이터 타입
2. 특수 데이터 타입
1. 기본 데이터 타입
1) 숫자형(numeric) : 숫자로 되어있고, 정수형과 실수형을 의미한다.
100 # R은 기본적으로 우리가 일반적으로 사용하는 숫자들을 실수형으로 간주한다.
100L # 정수형은 L을 붙여 구분
2) 문자형(character) : 하나 혹은 둘 이상의 문자의 집합을 말한다. '' 또는 ""로 표시한다.
3) 논리형(logical) : TRUE(T) , FALSE(F)로 표시한다.
R에서는 TRUE 또는 T로 표시하며, True, true와 같은 소문자를 포함한 형태로 사용하지 않는다.
4) 복소수형(complex)
4-3i
2. 특수 데이터 타입
1) NULL : 객체가 존재하지 않음을 지칭하는 객체
2) NA : Not Available. 결측치를 표현
3) NaN : Not Available Number, Not A Number. 연산할 수 없는 숫자를 의미.
sqrt(-3)
4) Inf : 양의 무한대, -Inf : 음의 무한대
3. Data Type의 우선순위 (중요!)
기본 데이터 타입 4개 우선순위: character > complex > numeric > logical
c(TRUE, 10,30) # 1 10 30 #numeric으로 통일
c(TRUE,10,30,"HELLO") # "TRUE" "10" "30" "HELLO" #character로 통일
4. 데이터 타입을 조사하기 위한 함수 - mode()
mode(100) # numeric
mode(TRUE) # logical
mode(sqrt(-3)) # numeric
mode(4-3i) # complex
mode(NULL) # NULL
5. 데이터 타입을 확인하기 위한 함수 - is 계열의 함수
is.numeric(10) # TRUE
is.integer(10) # FALSE # 겉으로 보기에는 정수처럼 보이지만 실수
is.integer(10L) # TRUE
is.null(10) # FALSE
6. 데이터 타입 변경 위한 함수 - as 계열의 함수
as.character(3.141592) # "3.141592"
as.integer(3.141592) # 3
as.logical(0) # FALSE # 0 제외한 모든 값은 TRUE로 간주
as.double("3.1415") # 3.1415
'R > 1. R 기초' 카테고리의 다른 글
데이터 입출력 - txt, csv, xml, json, excel (0) | 2020.01.09 |
---|---|
String - stringr 패키지를 이용한 문자열 처리 (0) | 2020.01.08 |
Data Structure 2 - list, data frame, factor (0) | 2020.01.08 |
Data Structure 1 - vector, matrix, array (0) | 2020.01.07 |
Package (0) | 2020.01.06 |