# chap01_Basic.R
# 1. 패키지와 session
# 2. 패키지 사용법
# 3. 변수와 데이터 유형
# 4. 기본함수와 작업공간
# 1. 패키지와 session
dim(available.packages()) # Ctrl+Enter
# [1] 14733(행:패키지 수) 17(열)
sessionInfo()
# 1) R version info
# 2) locale : 다국어 정보 - install(한국어)
# 3) 기본 패키지 정보(7 패키지)
# R 실행방법 2가지
# 1) 줄 단위 실행 (각 줄에서 Ctrl+Enter)
a <- 10
b <- 20
c <- a + b
print(c)
# 2) 블럭 단위 실행 (블럭 씌운 후 Ctrl+Enter)
pdf("d:/2_Rwork/output/test.pdf") # open
x <- rnorm(20)
hist(x)
dev.off() # close
# 2. 패키지 사용법
# - package = 함수(function) + 데이터셋(dataset)
# 1) 패키지 설치 : download(*.zip) -> install
install.packages('stringr') # ("package")
# glue, magrittr, stringi, stringr
# 2) 설치된 패키지 위치
.libPaths()
# "C:/Program Files/R/R-3.6.1/library"
# 3) 설치된 패키지 확인
library()
# 4) 특정 패키지 정보
library(help="stringr")
# 5) in memory
library(stringr) # memory loading
# 6) 사용가능한 패키지 확인
search()
# 문자열
str <-"홍길동35이순신45유관순25"
# 이름 추출
str_extract_all(str, "[가-힣]{3}")
# [1] "홍길동" "이순신" "유관순"
# 나이 추출
str_extract_all(str, "[0-9]{2}")
# [1] "35" "45" "25"
# 6) 설치된 패키지 제거
remove.packages("stringr")
# 다른 방법 : 물리적 폴더 삭제
# 3. 변수와 데이터 유형
# (1) 변수(variable) : 메모리 이름
# (2) 변수 작성 규칙
# - 첫자 영문자, 두번째 숫자, 특수문자(_, .)
# - 예약어 사용불가 : 함수명, 명령어 사용 불가
# - 대소문 구분(num, NUM)
var1 <- 10 # var1 = 10
var1 <- 100
var1 # [1] 100
var2 <- c(1,2,3,4,5)
var2 # [1] 1 2 3 4 5
var2[5] # 5
member.id = 'hong'
member.pwd = '1234'
member.name = '홍길동'
member.id # "hong"
member.pwd; member.name
x <- rnorm(100)
x
y <- rnorm(100)
y
num = 10
NUM = 100
num
NUM
name = "홍길동" # scals
names = c("홍길동", "이순신", "강감찬") # vector
name
names
names[2] # index : 저장된 위치
# (3) 자료유형(data type)
# - 숫자형, 문자형, 논리형
int <- 1000 # 숫자형
int * 2 # 2000
str <- "12345" # 문자형
str <- '12345' # 문자형
str * 2 # Error
bool <- TRUE # 논리형
bool2 <- FALSE # 논리형
# mode() : 자료형 반환
mode(int) # "numeric"
mode(str) # "character"
mode(bool) # "logical"
# is.xxx() : TRUE/FALSE
is.numeric(int) # TRUE
is.character(str) # TRUE
is.numeric(bool) # FALSE
is.logical(bool2) # TRUE
# NA : 결측치
score <- c(90, 85, NA, 80, 90)
score # 90 85 NA 80 90
is.na(score)
# [1] FALSE FALSE TRUE FALSE FALSE
# 점수 평균
mean(score) # NA
mean(score, na.rm = TRUE) # 86.25
# 점수 합계
sum(score, na.rm = T) # 345
# (4) 자료형변환(casting)
# 문자형 -> 숫자형(연산, plotting)
x <- c(1,2,3,4,"5")
mode(x) # "character"
x # "1" "2" "3" "4" "5"
x * 2 # Error
plot(x)
num <- as.numeric(x) # 숫자형
num # 1 2 3 4 5
num * 2
sum(num) # 15
plot(num*2)
# 요인형(Factor)
# - 동일한 값을 범주(category)로 갖는 집단변수 생성
gender <- c("M", "F", "F", "M", "M")
gender # "M" "F" "F" "M" "M"
mode(gender) # "character"
plot(gender) # Error
# 문자형 -> 요인형
fgender <- as.factor(gender)
mode(fgender) # "numeric"
plot(fgender)
fgender
# [1] M F F M M
# Levels: F M
str(fgender)
# Factor w/ 2 levels "F","M": 2 1 1 2 2
# 숫자형 -> 요인형
num <- c(4, 2, 4, 2)
mode(num) # "numeric"
num # 4 2 4 2
plot(num)
fnum <- as.factor(num)
fnum
# [1] 4 2 4 2
# Levels: 2 4
str(fnum)
# Factor w/ 2 levels "2","4": 2 1 2 1
plot(fnum)
# 문자형 -> 날짜형
Sys.Date() # "2019-08-12"
mode(Sys.Date()) # "numeric"
Sys.time() #"2019-08-12 15:30:01 KST"
today = "2019-08-12"
mode(today) # "character"
ctoday <- strptime(today, "%Y-%m-%d")
mode(ctoday) # "list"
class(ctoday) # "POSIXlt" "POSIXt"
today2 <- "2019-08-12 15:30:01"
today2
ctoday2 <- strptime(today2, "%Y-%m-%d %H:%M:%S")
ctoday2
today3 <- c('11/08/19', '12/08/19', '13/08/19')
ctoday3 <- strptime(today3, "%d/%m/%y")
ctoday3
#[1] "2019-08-11 KST"
#[2] "2019-08-12 KST"
#[3] "2019-08-13 KST"
# 4. 기본함수와 작업공간
# 1) 기본함수 : 바로 사용가능한 함수, 7개 패키지 소속 함수
sessionInfo()
#[1] stats graphics grDevices
#[4] utils datasets methods
#[7] base
mean(10, 20, 30) # 10
x <- c(10, 20, 30)
mean(x) # 20
# 함수 도움말
help(mean)
?sum # help(sum)
example(sum)
sum(1:100)
sum(1,2,3,NA,5, na.rm = TRUE) # 11
help(mode)
# 2) 기본 데이터셋
data() # dataset 목록 확인
data(Nile) # Nile data -> memory loading
Nile
1970-1871 # 99
plot(Nile)
# 3) 작업공간 (설정마다 다름)
getwd() # "C:/2_Rwork"
setwd("C:/2_Rwork/Part-II")
getwd() # "C:/2_Rwork/Part-II"
dataset <- read.csv("data.csv") # 예시 데이터일뿐, 각 가지고 있는 csv파일 불러보기
dataset
sum(dataset$Buy)
'R 과 데이터분석 > 기초 문법 ~ 머신러닝' 카테고리의 다른 글
[R 데이터분석] 5장. 데이터 시각화 (0) | 2019.09.13 |
---|---|
[R 데이터분석] 4장. 제어문과 함수 (0) | 2019.09.13 |
[R 데이터분석] 3장. 데이터 입출력 (feat. 데이터셋 제공 사이트) (0) | 2019.09.13 |
[R 데이터분석] 2장. 데이터 자료구조 & 문자열 처리와 정규표현식 (0) | 2019.09.12 |
R 프로그램 개요 & 다운로드 (0) | 2019.09.12 |
댓글