220823 Day1

유예지·2022년 8월 24일

R

-통계 프로그램
-엑셀과 비슷하지만, 엑셀보다는 더 많은 데이터를 다룰 수 있다
-엑셀은 '이미지'로 보여짐 -> 'GUI'
-R은 '명령어를 입력하는 창' 으로 실행

  • SPSS
    -엑셀보다 전문적인 프로그램, 때문에 비용이 비싸다
  • SAS
    -명령어를 입력하여 실행, 프로그램 판매는 하지 않고 랜트만 가능하다

* R을 사용하는 이유

-매우 다양한 통계 및 데이터 마이닝 분석 기법을 사용할 수 있다
-사용에 제약이 없는 오픈소스 기반이며, 확장이 용이하다
-운영체제에 영향을 받지 않는다 (윈도우, 리눅스 등)
-무료로 사용이 가능하다


* 데이터 분석 분야의 두 핵심 용어

  1. R
    -보다 배우기 수월, 직관적인 명령어, Scripting 언어에 가깝다
    -통계 분석이 이미 언어 내부에 내장되어 있다
  2. Python
    -보다 범용적이다

(1) R 실행 방식

  1. 명령어보다는 99% 함수를 많이 사용한다.
    -형태 : 함수이름(데이터값)

    -a <- 2 : a=2와 같은 의미 (3 -> b 도 가능)

    -R언어는 대소문자를 구별한다

  2. 단축키
    -ctrl+L : 작성한 내용 전체 지우기
    -ctrl+R : R 편집기에 작성한 코드를 R console로 옮김(실행하여 결과 확인)

  3. getwd()
    -wd : working directory, 즉 일하는 구역(작업장)을 의미
    -지정한 wd만 보겠다는 의미, 이 외에는 상관하지 않음

  4. setwd()
    -working directory 변경
    -변경하고 싶은 구역을 괄호 안에 적는다

  5. mkdir()
    -mk : make
    -새로운 directory를 만들 때

  • 예) 워킹디렉토리를 R 디렉토리로 바꾸어보시오.
  1. c() (= combine())
    -2개 이상의 값을 넣고 싶을 때
    -a <- c(1,2)
    -b <- 1:10 (또는 c(1:10)) : 1부터 10까지의 연속적인 숫자를 넣을 때

  2. 통계에 관련된 함수
    -평균값 : mean()
    -분산값 : var()
    -표준편차 : sd()

  3. 자동완성기능 : 'Tab'키
    -오타를 방지할 수 있다
    -에러가 발생하는 이유 중 하나가 '오타' 때문
    -예 : ins까지 치고 Tab키를 두번 누르면 -> ins로 시작하는 함수리스트를 볼 수 있다
    -사용자 폴더를 만들 때 폴더명은 반드시 "영어"로 해야한다 (한글로 하면 에러 발생)

  4. install.package()
    -괄호 안의 패키지를 다운로드 하는 함수
    -package : R 프로그램에는 없지만 필요할 때, 새로운 함수를 만들어 사용할 수 있다
    -새로운 함수를 만들어 설치(install.package)하고, 실행(library)한다
    -library() : CPU가 주기억장치(RAM)에서 데이터를 가져온다


(2) R의 시각화

  1. qplot()
    -q : quick
    -간단한 그래프를 '빠르게' 그리는 법

    예) diamonds 를 입력하면 -> 데이터 값이 행렬로 정렬되어 나온다 (53,940 X 10)
    qplot(diamonds$cut) 실행 -> diamonds의 데이터 값을 막대 그래프로 확인할 수 있다

  2. ggplot()
    -산점도를 볼 수 있다
    예) ggplot(data = diamonds, aes(x=carat, y=price)) + geom_point()
    을 입력 후 실행하면 데이터 값에 따른 산점도를 볼 수 있다

(3) R studio

-메모장과 거의 동일
-명령어를 입력한 후 Enter키 만으로도 편리하게 실행 가능
-R과 R studio는 거의 동일하다고 볼 수 있고,
-R studio에서 사실상 모든 작업이 다 이루어진다
-R을 잘쓰려면 R studio가 익숙해야한다

-제곱의 표현 : a^b 또는 a**b

(4) R의 데이터 타입

  1. numeric : 숫자, 정수와 실수 모두 포함
  2. character : 문자, 쌍따옴표나 따옴표로 표현 ("문자" 또는 '문자')
  3. logical : TRUE, FALSE (대문자로만 표기)
    -조건문 및 인덱스에서 사용되는 타입
    -T 또는 F로 축약해서 표현 가능
    -TRUE, FALSE, T, F 글자는 다른 색으로 표기 됨

*변수의 이름을 지을 때는 "숫자", "언더스코어(_)"로 시작해서는 안됨

* 벡터

-벡터 : "한 줄"을 의미
-하나의 벡터에는 하나의 타입만 가져야 한다
-2개 이상의 타입 입력 시 "character -> numeric -> logical" 순으로 인식된다
-vectorise : 여러줄로 되어있는 데이터를 한줄로 정렬하는 것

(5) 행렬 만들기

matrix(1:12)
matrix(1:12, nrow = 3)
matrix(1:12, ncol = 4)

mat <- matrix(1:12, nrow = 3, byrow = TRUE)

rownames(mat) <- c("국어","영어","수학")

colnames(mat) <- c("a1","a2","a3","a4")

# 접근
mat[1,2]
mat[ ,2]
mat[1, ]
mat
mat[ ,-2]
mat["영어", ]
mat[ ,2:3]
mat[c(1,3),c(2,4)]

(6) data frame 만들기

x1 <- c(100,80,60,40,30)
x2 <- c('A','B','C','A','B')
x1
x2
typeof(x2)

data.frame(x1)
df <- data.frame(x1,x2)

df <- data.frame(score=x1, grade=x2)

df[3,1]
df[ ,1]
df[ ,'score']

df$score   #$: 해당 데이터 값 나열
df$grade
df[ ,c('score','grade')]

mean(df$score)

(7) 특정 data frame 불러오기

data()

library(ggplot2)

airquality
#1) 몇 행 몇 열 입니까? 153행, 6열
#2) 칼럼의 이름은 모두 무엇입니까? Ozone, Solar.R, Wind, Temp, Month, Day
  
air <- airquality[1:6, ]

air[c(1,4),c(1,5)]  #특정 행렬에 있는 값
sum(air[c(1,4),c(1,5)]) # 특정 행렬에 있는 값의 합

# 1열, 2열을 제외하고 표기하는 법
airquality[ ,3:6]
airquality[ ,c(-1,-2)]
airquality[ ,-c(1,2)]

3문제 제출

문제1. c() 는 어느 경우에 사용하는가?

답. 변수에 2개 이상의 값을 넣고 싶을 때
예) a에 2개의 값(1과 2)을 넣고 싶다면 a <- c(1,2) 입력

문제2. 변수의 이름을 지을 때 맨 앞쪽에 사용해서는 안되는 것은?

답. 숫자, 언더스코어(_)

문제3. R의 논리 연산자에서 &와 |를 두번 쓰는 것(&&, ||)은 어떤 것을 의미하는가?

답. 벡터의 첫번째 원소만 비교하여 결과를 반환하라는 것을 의미한다.
예)
C <- c(T,T)
D <- c(F,T)

C와 D의 첫번째 원소인 T와 F만 비교

C && D 를 실행하면 FALSE 출력,
C || D를 실행하면 TRUE 출력

0개의 댓글