본문 바로가기
Data Science/Data Analytics

[ADP-9] R 외부 데이터 불러오기 / R의 기초함수 / R 데이터 핸들링 / R 반복 구문과 조건문

by 루크 Luke 2022. 8. 16.
반응형

외부 데이터 불러오기

- R은 다양한 형태의 외부 데이터를 불러올 수 있음

- csv, txt, xls, xlsx파일을 R로 불러올 수 있음

- 경로 지정할 때는 '\' 대신에 '\\'이나 '/'을 사용함

- CSV 파일 불러오기

data1 <- read.table("D:\\DATA\\example.csv", header=T, sep=",")

- read.csv 메서드를 사용하면 sep을 따로 명시할 필요가 없음

- TXT 파일 불러오기

data2 <- read.table("D:\\DATA\\example.txt")

- XLS/XLSX 파일 불러오기

- 엑셀 파일은 csv파일로 바꿔서 불러오거나, R의 RODBC 패키지를 이용해서 불러옴

- 엑셀 파일의 경로를 입력하는 경우 확장자를 생략하고 작성해야 하는 점에 유의

- 워크시트의 이름은 대소문자를 구분하므로 정확하게 작성

library(RODBC)
new <- odbcConnectExcel("c:\\data\\mydata")
yourdata <- sqlFetch(new, "Sheet1")
close(new)

R의 기초함수

1) 수열 생성하기

1) rep, seq

rep(1, 3)
# 1 1 1

rep(2:5, 3)
# 2 3 4 5 2 3 4 5 2 3 4 5
seq(1, 3)
# 1 2 3

1:3
# 1 2 3

seq(1, 11, by=2)
# 1 3 5 7 9 11

seq(1, 11, length=6)
# 1 3 5 7 9 11

seq(1, 11, length=8)
# 1.000000 2.428571 3.857143 5.285714 6.714286 8.142857 9.571429 11.000000

 

2) 기초적인 수치 계산

- 행렬 계산을 비롯핸 다양한 형태의 수치 계산을 위한 함수와 명령어가 있음

- 기본적으로 벡터와 벡터의 사칙연산을 수행하는 경우 연산되는 벡터들의 길이는 같아야 함

- R에서 벡터를 생성할 때는 기본적으로 열벡터가 만들어짐

- 행렬 곱을 실시하기 위해서는 t 명령어를 통해 주어진 행렬의 전치 행렬(Transpose matrix)를 구하고, %*%를 통해 실시

a = c(2, 7, 3)

a
# 2 7 3 (column vector)

t(a)
# 2 7 3 (row vector)

A = a %*% t(a)

A
# 4 14 6
# 14 49 21
# 6 21 9

- 행렬 A에 대해 * 연산을 실시하면 스칼라 곱의 결과를 얻을 수 있음

- solve 명령어를 통해 행렬의 역행렬을 계산할 수 있음

- 벡터의 평균, 분산, 표준편차 = mean(a), var(a), sd(a)

- 벡터의 합, 중앙값, 자연로그값 = sum(a), median(a), log(a)

- 서로 다른 두 벡터에 대해서 공분산과 상관계수 = cov(a, b), cor(a, b)

- 주어진 벡터에 대해 각 사분위 수와 최솟값, 최댓값, 중앙값, 평균을 계산 = summary(a)

 

R 데이터 핸들링

- R은 객체지향 언어이기 때문에 변수를 불러오거나 변수 내의 요소들을 참조하는 것이 직관적이고 간단함

 

1) 벡터형 변수

- b[n]은 b벡터 내에서 n번째 원소에 해당하는 값을 불러옴

- b[-n]은  b벡터 내에서 n번째 원소만 제외하고 불러옴

- b[c(2, 3)]은 b벡터 내에서 2, 3번째 위치 값을 선택함

b = c("a", "b", "c", "d", "e")

b[2]
# "b"

b[-4]
# "a" "b" "c" "e"

b[c(2, 3)]
# "b" "c"

 

2)  행렬 / 데이터프레임형 변수

- df[m, n]은 df데이터프레임 내에서 m행 n열 데이터를 불러옴

- df[ , 2]는 df데이터프레임 내에서 2열의 값을 모두 불러옴

- df[4, ]는 df데이터프레임 내에서 4행의 값을 모두 불러옴

- df[-m, ]는 df데이터프레임 내에서 m행을 제외하고 모두 불러옴

- df[ , -n]는 df데이터프레임 내에서 n열을 제외하고 모두 불러옴

- df[-m, -n] 등 제외하는 경우는 두 개를 한꺼번에 쓸 수 없음

 

반복 구문과 조건문

1) for 반복 구문

a = c()  # 빈 벡터 선언

for (i in 1:9) 
    {
	    a[i] = i * i
    }

a
# 1 4 9 16 25 36 49 64 81

 

2) while 반복 구문

x = 1

while (x < 5)
    {
    	x = x + 1
        print(x)
    }
    
# 2
# 3
# 4
# 5

 

3) if-else 반복 구문

for (i in 1:40)
    {
    	if (statscore[i] >= 70) over70[i] = 1
        else over70[i] = 0
    }

 

반응형

댓글