본문 바로가기
data/R 프로그래밍

R 기초 문법 ① (R특징, 데이터형, 변수)

by #moonyz 2014. 11. 27.

1. R 관련 특징

- R은 인터프리터 언어 (cf.컴파일방식=C언어 등)

- 대소문자 구분

- ↑ 방향키로 이전에 했던 작업 수행 가능

- q() 사용하면 R 종료

- 작업하는 내용을 저장하거나 작업용 데이터를 보관하는 작업 디렉토리를 지정하는것이 좋음

- 스크립트창을 열어서 코드를 입력한 후 해당 부분을 선택한 후 ctrl+R을 눌러서 실행


# : 주석

> : 명령 프롬프트

+ : 여러줄에 명령을 칠때 다음줄의 가장 왼쪽에 생성됨



2. 작업디렉토리 지정하기 & 화면에 결과 출력

① setwd("디렉토리명")

- R로 작업을 할때 필요한 데이터들을 미리 가져다 두는 약속된 디렉토리

- 작업 후 나오는 결과물들도 기본적으로 저장됨

- 작업하기전 디렉토리 생성 후 분석할 소스 데이터들을 생성한 디렉토리로 옮겨놓고 작업


② print() / cat()

- R 콘솔 화면에서 print명령을 이용하여 내용 출력

- print() : 1번에 1가지만 출력가능 (단점)

- cat() : 여러개 출력 가능, but, 복잡한 데이터 형태는 출력 불가(행렬, 리스트 등)

- 여러개의 명령을 연속적으로 실행하고 싶을경우 세미콜론(;)사용


3. 기본 데이터 형

① 숫자형과 주요 산술연산자

 기호

의미 

사용 예 -> 결과 

+

더하기 

1+2 -> 3 

-

빼기 

2-1 -> 1 

*

곱하기 

1*2 -> 2 

나누기(실수 가능) 

4/2 -> 2 

%/% 

정수나누기

 

%% 

나머지

5%%4 -> 1 

^, ** 

승수 

3^2 -> 9

3**3 -> 27 



② 문자형

- 문자를 처리할때는 쌍따옴표(" ")나 홑따옴표(' ')를 사용해야함

- 1글자인 문자형과 여러글자인 문자열의 구분없이 전부 문자열 형태

- 어떤 데이터가 숫자형인지 문자형인지 알수 없다면 class()함수 사용



③ TRUE / FALSE 값 (진리값)

- 데이터들을 비교하여 참일경우 true, 거짓일 경우 false 반환

- & : 양쪽데이터가 모두 참일 경우만 true, 곱하기로 간주(and)

- | : 한가지만 참이어도 결과를 false, 더하기로 간주(or)

- ! : 해당 데이터가 아닌것, not

- 0(false)을 제외한 나머지는 참(true)



④ NA / NULL 형

- NA (Not Applicable 또는 Not Available) : 정해진 범위 안에 있는 값이 아니라서 사용할수 없는경우

- NA 값인지 아닌지 여부 확인 : is.na(변수명)

- NA값이 포함된 연산의 결과는 무조건 NA

- NA 값은 연산 대상에 포함되지만 but, NULL 값은 연산 대상에서 제외

- NA 값을 수동으로 제거 : na.rm 파라미터 사용

- NULL : 값이 정해지지 않아서 얼마인지 모르는 경우



⑤ Factor 형

- 여러번 중복으로 나오는 데이터들을 각 값으로 모아서 대표값을 출력해줌

- c() 함수는 combine value라는 의미로 여러개의 값을 한꺼번에 처리할때 사용되는 함수



⑥ 날짜와 시간

- R에서는 날짜나 시간같은 데이터가 아주 중요하게 생각됨

- 데이터를 분석할때 특정 시간 또는 특정 기간을 지정하여 분석하는 경우가 많기때문

Sys.Date() : 날짜만 보여주는 함수

- Sys.time() : 날짜와 시간

date() : (미국식) 날짜와 시간

as.Date() : 문자형태로 저장된 날짜를 날짜로 변경 + format사용가능

FORMAT

%d : 일자를 숫자로 인식

%m : 월을 숫자로 인식

%b : 월을 영어 약어로 인식

%B : 월을 영어로 인식

%y : 년도를 숫자 두자리로 인식

%Y : 년도를 숫자 네자리로 인식



as.POSIXct() : 시간단위까지 연산이 필요할때 사용 cf) as.Date()함수는 날짜까지만 연산가능

- POSIXlt : 날짜를 년,월,일로 표시하는 리스트형 클래스

- POSIXct : 날짜를 연속적인 데이터로 인식해서 1970년을 기준으로 초단위계산

- 날짜 - 날짜 = 일수

- 날짜 + 숫자 = 날짜 / 날짜 - 숫자 = 날짜

- as.numeric() : 문자를 숫자로 바꿀때 사용

 



※ lubridate 패키지




4. 변수

① 변수설정시 주의사항

- 대소문자를 구분함

- 영어와 숫자모두 사용가능, 그러나 시작은 반드시 문자로

- 예약어는 사용불가 (break else FALSE for function if in Inf NA NaN next NULL repeat TRUE while 등)


② 변수에 데이터 담기

- R은 다른언어와는 다르게 변수를 선언할 때 어떤데이터를 담을 것인지 미리 지정하지 않고 바로 사용 가능

- 변수에 값을 넣을때는 <- 기호 사용

- 문자와 문자열을 구분하지 않고 모두 문자열로 생각하고 저장함

- 하나의 변수에 여러개의 데이터를 담을 때 데이터형은 동일해야 함



③ 변수값을 사용하여 산술연산하기

- 변수에 데이터들을 담아서 변수끼리 연산가능

- 한개라도 숫자데이터가 아닐경우 산술연산 불가



④ 변수에 연속적인 값 대입하기

- 연속적인 숫자만 대입가능

- 문자는 연속적으로 할당 불가



⑤ 생성한 변수 확인 및 삭제

objects( ) : 자신이 생성한 모든 변수 확인

objects(all.names=T) : 숨김 속성의 변수까지 모두 확인가능

rm(변수명) : 특정변수 삭제가능

rm(list=ls()) : 모든 변수 삭제 (조심해서사용)



댓글