티스토리 뷰
작업 디렉토리 지정
getwd() # 작업 디렉토리의 위치 확인
작업 디렉토리를 지정해도 R 프로그램을 껏다 키면 기존 디렉토리 경로로 재설정됩니다.
현업에서는 주로 서버 컴퓨터에있는 R 프로그램을 공유 자원으로 사용하기 때문에, 작업 디렉토리를 변경해서 사용하는 방법보다 기존 디렉토리에 파일을 넣고 하는 습관을 들이는게 좋다고 합니다.
변수
1) 변수 생성
변수는 주로 알파벳, 숫자, _(언더스코어) 로만 이루어진 규칙을 사용하는게 좋습니다.
.(마침표)도 가능하지만 파이썬이나 다른 언어의 변수에서 사용할 수 없는 경우가 있기 때문에 가능하면 공통적인 변수 규칙을 사용하는게 좋겠죠?
또한 이미 R이 사용하고있는 함수와 같은 문법적 규칙은 변수로 사용하지 않는게 좋습니다.
예약어라고도 하죠. 모든 사람들이 알고 있는 문법적 규칙(함수나 패턴)에는 IF, FOR, SUM .. 이 있습니다!
2) 변수에 데이터 할당
변수에 데이터를 할당하는 방법은 주로 '<-' 를 사용합니다.
'<<-', '=' 다른 방법도 있지만, 나중에 사용 목적에 혼동이 생길 수 있기 떄문에 권고하는 거겠죠?
# var 라는 변수에 숫자형 데이터 할당
var <- 1
# var 라는 변수에 문자형 데이터 할당
* R, Python 은 홑 따움표, 쌍따움표 구분을 안합니다.
var <- '123' # 문자
var <- "123" # 문자열
# 데이터를 연산하더라도 변수에 저장을 해주어야 결과값이 저장
var1 <- 1
var1 + 10 # [1] 11
var1 <- var1 + 10
# 참고. 변수의 생성과 출력을 동시에 하는 방법
var <- 10 ; var # ;(세미콜론)은 명령어의 연속 출력을 의미
(var <- 10) # (명령어)는 명령어의 실행과 출력을 동시에 수행
3) 변수의 데이터 타입
# 숫자형 스칼라
var1 <- 0
# 숫자형 벡터
var1 <- c(1,2)
# 문자형 벡터
var2 <- c("a","b")
# 날짜형 스칼라
var3 <- Sys.Date()
class(var1) # numeric
class(var2) # character
class(var3) # Date
오라클은 묵시적 형변환을 해주지만, R 과 Python 에서는 불가능합니다.
그래서 변수 연산 시 변수의 데이터 타입을 잘 확인해주어야하죠.
1 + "10" # 불가
1 + 10 # 숫자일 때만 가능
그래도 R 에서도 형변환 함수를 제공해줍니다.
오라클로 보면 to_number 과 유사하죠?
# 형변환 함수를 통한 형 변환
1 + as.numeric("10")
4) 함수의 사용
함수를 사용하기 전, 함수의 메뉴얼을 확인하는 방법이 있습니다.
seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)), length.out = NULL, along.with = NULL, ...)
함수의 메뉴얼을 살펴보면 함수의 인자에 각각 이름이 있습니다. 함수의 인자 위치와 순서를 잘 알고있다면 인자의 이름을 생략할 수 있지만, 그렇지 않은 경우 인자를 함께 입력해주는게 좋죠!
그리고 함수의 인자에 지정된 숫자는 사용자가 인자를 입력하지 않을 시 적용되는 default 값을 의미합니다.
seq(from = 1, to = 10, by = 2) # 함수의 인자 순서를 모를 경우
seq(1,10,2) # 함수의 인자 순서를 잘 아는 경우
인자의 이름은 알지만 순서를 모르더라도, 이름과 함께 작성해주면 순서는 상관이 없습니다.
seq(to = 10, from = 1, by = 2)
5) 변수 확인
objects(all.names=T) # 숨김 속성의 변수도 출력
변수는 메모리에만 저장하고 디스크에는 저장하지 않기 때문에, R 종료 후 다시 실행하면 생성했던 변수가 다 사라져버립니다.
6) 변수 삭제
rm(list=ls()) # 메모리 상에서 생성한 모든 변수 삭제
사실상 rm(list=ls()) 를 사용하지 않고, R 을 종료해도 메모리상의 모든 변수가 삭제됩니다.
그래도 언젠가.. 쓸 상황이 있으니 이러한 함수가 있겠죠?!
[R] 리스트(list) <- Key-value 형태로 저장되는 데이터 구조
[R] 행렬(Matrix) <- 행과 열의 구조를 갖는 2차원 배열 구조
[R] 배열(Array) <- 동일한 데이터 타입으로 구성된 다차원 데이터구조
[R] 데이터 프레임(Date Frame) <- 엑셀 시트와 유사한 표 형태를 가진 데이터 구조
참고: KIC 캠퍼스 머신러닝기반의 빅데이터분석 양성
'R > Process' 카테고리의 다른 글
[R] 날짜와 시간 - as.Date, lubridate (0) | 2018.12.24 |
---|---|
[R] 진리값, 진리값의 연산자 (0) | 2018.12.24 |
[R] 팩터 (factor) (5) | 2018.12.24 |
[R] 벡터(vector) (0) | 2018.12.24 |
[R] 스칼라(scalar) + NA, NULL (0) | 2018.12.22 |