놀고 싶어요

R 기초 - 변수, 함수, 스칼라, 벡터, Matrix, List, Array, dataframe, 연산자 본문

R

R 기초 - 변수, 함수, 스칼라, 벡터, Matrix, List, Array, dataframe, 연산자

챌린지 2021. 5. 2. 23:58

R에서 변수 선언 시 내용에 따라 데이터 타입이 정해진다.

 

변수

네이밍 규칙

1. 문자 또는 점으로 시작되어야 함

2. 언더스코어(_) 포함 특수문자 사용 불가능

3. 예약어 사용 불가능 (ex. if, for.. 문법적 용도 있으므로)

4. 대소문자 구분함

 

정의하는 방법

변수명 <- 내용

 

함수

R을 설치하면 R 기본 코드가 내장한 함수를 바로 사용 가능하다. 함수 외에도 패키지를 설치하여 사용 가능한 함수 확장이 가능하다.

 

 

스칼라

: R의 데이터 타입에서 가장 단순한 요소. 길이가 1인 벡터. 단위 원소. 정수, 부동 소수, 문자열, 논리값, NA, NULL

 

정수는 뒤에 대문자 L을 붙여서 사용한다. ex) 2L, 10L

부동소수(실수)는 소수점을 포함한 숫자를 의미한다.

문자열은 항상 따옴표를 사용한다. (큰/작은따옴표 상관안함)

논리값: TRUE, FALSE로 대문자로 쓸 때에만 인식

NA(Not Available): 데이터가 없다.

NULL: undefined 데이터가 초기화 되지 않았다. 

 

 

factor(요인) : 범주형 데이터

 

실행 시 한 줄 씩 ctrl+enter (command + enter)

gender는 m이라는 값을 factor으로 변수에 담아두라는 의미이다. 이 factor에는 m과 f 두 가지 요인이 있다는 것을 알려준다. (levels)

gender는 print(gender)와 동일한 의미, gender안에 있는 변수를 보여준다.

gender 안에 m이라는 문자가 들어가 있고 levels는 m과 f가 정의되어 있음을 표시한다.

m과 f가 아닌 값(ex. c)가 들어가면 NA가 뜬다.

 

 

벡터

: 여러 개의 값이 함께 들어있는 구조. 같은 타입의 스칼라만 포함할 수 있다. (길이는 하나 이상)

다른 스칼라 입력시 강제 형변환이 발생한다. 벡터 안에 벡터를 담을 수는 없다.

대괄호 안의 인덱스라고 부르는 숫자로 위치 지정. 대괄호 안에 이름을 써서 특정 값을 추출할 수 있음

(R의 인덱스는 1부터 시작한다.)

 

 

벡터 만드는 방법

c(입력내용)

c는 combine의 c이다.

c 경우 타입이 달라 형변환이 발생했다.

c(1, 2, 3, 'a', 5)의 경우 타입이 다른 데이터가 있어 형변환이 발생했다.

 

c[2:5]는 c에 담겨 있는 두 번째 부터 다섯 번째 까지의 데이터를 의미한다.

c[c(2, 5)]는 c에 담겨 있는 내용 중 두 번째와 다섯 번째 의미.

 

 

matrix(행렬)

: 동일한 스칼라 타입의 데이터가 2차원으로 구성된 형태

 

nrow: 행 수

ncol: 열 수

byrow: TRUE일 경우 행 정렬, FALSE일 경우 열 정렬 

 

 

 

list

: 서로 다른 스칼라 또는 벡터를 요소로 가질 수 있음. list 내에 listf를 중첩하여 가질 수 있다.

 

 

array(배열)

: 동일한 스칼라 타입만 담은 n차원 구조. Array() 함수를 호출하여 만들 수 있다.

 

 

dataframe

: 엑셀 테이블과 유사. 동일한 스칼라 타입의 데이터를 담고 있는 2차원 구조. 컬럼 간에는 다른 스칼라 타입 사용이 가능하다. 전체 컬럼의 길이는 같아야 한다. 데이터 분석에서 가장 많이 사용되는 구조!

 

산술연산자 (사칙연산 등)

: 정수끼리 또는 정수-실수 연산에서 결과값이 실수일 경우 자동으로 결과 값의 타입을 실수로 처리한다. 

 

비교연산자 (부등호 사용 <, >)

: 부등호와 등호를 같이 사용할 경우 부등호 먼저 사용해야 함.

>=, <=, !=, == ...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'R' 카테고리의 다른 글

[R Programming]attributes(), head()  (0) 2021.05.07
[R Programming] summary()  (0) 2021.05.07
[R Programming]data.table  (0) 2021.05.07
[데이터 분석] R로 데이터 읽어오기  (0) 2021.05.07
R 기본 소개 그리고 R, RStudio 설치  (0) 2021.05.02