R:자료형: 두 판 사이의 차이
잔글편집 요약 없음 |
|||
1번째 줄: | 1번째 줄: | ||
{{R}}<br /> | {{R}}<br /> | ||
==변수형== | ==변수형== | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
!변수타입 | !변수타입 | ||
!기원 | !기원 | ||
!설명 | !설명 | ||
|- | |- | ||
|chr | |chr | ||
|character | |character | ||
|문자열 | |문자열 | ||
|- | |- | ||
|int | |int | ||
|integer | |integer | ||
|정수 | |정수 | ||
|- | |- | ||
|num | |num | ||
|numeric | |numeric | ||
|자연수 | |자연수 | ||
|- | |- | ||
|Factor | |Factor | ||
| | | | ||
|명목형 변수 | |명목형 변수 | ||
|- | |- | ||
|Posixct | |Posixct | ||
| | | | ||
|시간변수(년월일시분초) | |시간변수(년월일시분초) | ||
|- | |- | ||
|Tseries | |Tseries | ||
| | | | ||
|시계열 변수 | |시계열 변수 | ||
|- | |- | ||
|an | |an | ||
|Null | |Null | ||
NA | NA | ||
|결측치(빈 값) | |결측치(빈 값) | ||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
!변수명 | !변수명 | ||
!설명 | !설명 | ||
!정보량 | !정보량 | ||
!변환 | !변환 | ||
|- | |- | ||
|명목형변수 | |명목형변수 | ||
|특성에 따라 명칭을 주어 구분하는 변수 | |특성에 따라 명칭을 주어 구분하는 변수 | ||
| rowspan="3" |아래로 갈수록 정보량이 많아진다. | | rowspan="3" |아래로 갈수록 정보량이 많아진다. | ||
| rowspan="3" |아래에서 위로 변환은 가능하지만, | | rowspan="3" |아래에서 위로 변환은 가능하지만, | ||
위에서 아래로의 변환은 정보량 부족으로 불가. | 위에서 아래로의 변환은 정보량 부족으로 불가. | ||
|- | |- | ||
|서열형변수 | |서열형변수 | ||
|명목형변수에서 서열정보 추가 | |명목형변수에서 서열정보 추가 | ||
|- | |- | ||
|연속형변수 | |연속형변수 | ||
|셀 수 없으며, 구간(0~10)으로 정의되는 변수 | |셀 수 없으며, 구간(0~10)으로 정의되는 변수 | ||
|} | |} | ||
==데이터 파악 관련함수== | ==데이터 파악 관련함수== | ||
{| class="wikitable" | {| class="wikitable" | ||
!이름 | !이름 | ||
!기원 | !기원 | ||
!기능 | !기능 | ||
!사용법 | !사용법 | ||
|- | |- | ||
|str() | |str() | ||
| | | | ||
|데이터의 타입 확인 | |데이터의 타입 확인 | ||
|str(데이터) | |str(데이터) | ||
|- | |- | ||
|is() | |is() | ||
|is | |is | ||
|데이터의 타입 확인 | |데이터의 타입 확인 | ||
str이 변수타입을 알려준다면, | str이 변수타입을 알려준다면, | ||
is는 참과 거짓으로 알려준다. | is는 참과 거짓으로 알려준다. | ||
결과값은 기존 데이터형의 좌표목록으로 나온다. | 결과값은 기존 데이터형의 좌표목록으로 나온다. | ||
|is.integer(데이터) | |is.integer(데이터) | ||
|- | |- | ||
|as() | |as() | ||
|as | |as | ||
|변수타입을 바꾼다. | |변수타입을 바꾼다. | ||
|as.integer(데이터) | |as.integer(데이터) | ||
|- | |- | ||
|summary() | |summary() | ||
|summary | |summary | ||
|해당 데이터의 요약정보를 본다. | |해당 데이터의 요약정보를 본다. | ||
변수타입과 관련 정보들을 보여준다. | 변수타입과 관련 정보들을 보여준다. | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
!데이터형 | !데이터형 | ||
!결과 | !결과 | ||
|- | |- | ||
|Factor | |Factor | ||
|Low, Mid, High에 해당하는 집계를 보여준다. | |Low, Mid, High에 해당하는 집계를 보여준다. | ||
|- | |- | ||
|Numeric | |Numeric | ||
|최솟값, 최대값, 평균, 각 분위수 | |최솟값, 최대값, 평균, 각 분위수 | ||
1분위수는 하위 25%에 해당하는 값. | 1분위수는 하위 25%에 해당하는 값. | ||
2분위수는 Median으로 나타나고, | 2분위수는 Median으로 나타나고, | ||
3분위수는 상위 25%에 해당하는 값. | 3분위수는 상위 25%에 해당하는 값. | ||
|- | |- | ||
| | | | ||
| | | | ||
|} | |} | ||
|summary(데이터) | |summary(데이터) | ||
|} | |} | ||
==데이터 조작 관련함수== | ==데이터 조작 관련함수== | ||
===데이터 수치 조작=== | ===데이터 수치 조작=== | ||
{| class="wikitable" | {| class="wikitable" | ||
!이름 | !이름 | ||
!기원 | !기원 | ||
!기능 | !기능 | ||
!사용법 | !사용법 | ||
|- | |- | ||
|quantile() | |quantile() | ||
|qunatile | |qunatile | ||
|각 분위수에 해당하는 값을 꺼낸다. | |각 분위수에 해당하는 값을 꺼낸다. | ||
|quantile(데이터셋$열이름, probs = c(0.1, 0.3, 0.5, 0.7, 0.9) | |quantile(데이터셋$열이름, probs = c(0.1, 0.3, 0.5, 0.7, 0.9) | ||
10, 30, 50, 70, 90%에 해당하는 값들을 보여준다. | 10, 30, 50, 70, 90%에 해당하는 값들을 보여준다. | ||
[이걸 변수에 저장하거나 하진 못하나?] | [이걸 변수에 저장하거나 하진 못하나?] | ||
|- | |- | ||
|sum() | |sum() | ||
|sum | |sum | ||
|합. | |합. | ||
|sum(데이터셋$열이름) | |sum(데이터셋$열이름) | ||
|- | |- | ||
|rowSums() | |rowSums() | ||
| | | | ||
|행별 합. | |행별 합. | ||
|rowSums(데이터셋[범위]) | |rowSums(데이터셋[범위]) | ||
rowSums(데이터셋[2:8]) | rowSums(데이터셋[2:8]) | ||
|- | |- | ||
|colSums() | |colSums() | ||
| | | | ||
|열별 합. | |열별 합. | ||
|colSums(데이터셋[범위]) | |colSums(데이터셋[범위]) | ||
|- | |- | ||
|mean() | |mean() | ||
|mean | |mean | ||
|평균. | |평균. | ||
|mean(데이터셋$열이름) | |mean(데이터셋$열이름) | ||
|- | |- | ||
|rowMeans() | |rowMeans() | ||
| | | | ||
|행별 평균. | |행별 평균. | ||
|rowMeans(데이터셋[범위]) | |rowMeans(데이터셋[범위]) | ||
|- | |- | ||
|sd() | |sd() | ||
| | | | ||
|표준편차 | |표준편차 | ||
|sd(데이터셋$열이름) | |sd(데이터셋$열이름) | ||
|} | |} | ||
위 연산들에서 결측치를 생략하고 계산하고자 한다면 뒤에 <code>na.rm=True</code>를 붙여주면 된다. ex) <code>sum(데이터셋[범위], na.rm=True)</code> | 위 연산들에서 결측치를 생략하고 계산하고자 한다면 뒤에 <code>na.rm=True</code>를 붙여주면 된다. ex) <code>sum(데이터셋[범위], na.rm=True)</code> | ||
===데이터 통계=== | ===데이터 통계=== | ||
{| class="wikitable" | {| class="wikitable" | ||
!이름 | !이름 | ||
!기원 | !기원 | ||
!기능 | !기능 | ||
!사용법 | !사용법 | ||
|- | |- | ||
|table() | |table() | ||
|table | |table | ||
|빈도 테이블 작성. | |빈도 테이블 작성. | ||
열 안에 속한 요소가 몇 번씩 등장하는지 세어 테이블로 만든다. | 열 안에 속한 요소가 몇 번씩 등장하는지 세어 테이블로 만든다. | ||
|테이블명 = as.data.frame(table(데이터셋$열이름)) | |테이블명 = as.data.frame(table(데이터셋$열이름)) | ||
|- | |- | ||
|xtabs() | |xtabs() | ||
| | | | ||
|2차원 테이블 작성. | |2차원 테이블 작성. | ||
열이름1과 열이름2 안에 나타나는 조합의 수별로 몇 번씩 등장하는지 센다. | 열이름1과 열이름2 안에 나타나는 조합의 수별로 몇 번씩 등장하는지 센다. | ||
|테이블명 = as.data.frame(xtabs(~ 데이터셋$열이름1 + 데이터셋$열이름2)) | |테이블명 = as.data.frame(xtabs(~ 데이터셋$열이름1 + 데이터셋$열이름2)) | ||
|} | |} | ||
==시간변수 다루기== | ==시간변수 다루기== | ||
3가지 방법이 있다. | 3가지 방법이 있다. | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
!방법 | !방법 | ||
!사용처 | !사용처 | ||
!사용예시 | !사용예시 | ||
|- | |- | ||
|as.Date() | |as.Date() | ||
|년-월-일 형태 | |년-월-일 형태 | ||
|as.Date(변수, formet="날짜형식") | |as.Date(변수, formet="날짜형식") | ||
as.Date(2020-08-03, formet="%Y-%m-%d" | as.Date(2020-08-03, formet="%Y-%m-%d" | ||
|- | |- | ||
|as.POSIXct() | |as.POSIXct() | ||
|년-월-일 시:분:초 형태 | |년-월-일 시:분:초 형태 | ||
| | | | ||
|- | |- | ||
|lubridate패키지 | |lubridate패키지 | ||
| | | | ||
| | | | ||
|} | |} | ||
===날짜형식=== | ===날짜형식=== | ||
2020년 1월 22일 23시 24분 25초 월요일 이라고 할 때의 데이터 표시를 알아보자. | 2020년 1월 22일 23시 24분 25초 월요일 이라고 할 때의 데이터 표시를 알아보자. | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
! | ! | ||
!형식 | !형식 | ||
!예시 | !예시 | ||
!형식 | !형식 | ||
!예시 | !예시 | ||
|- | |- | ||
!세기 | !세기 | ||
|%C | |%C | ||
|20세기 | |20세기 | ||
| | | | ||
| | | | ||
|- | |- | ||
!년 | !년 | ||
|%Y | |%Y | ||
|2020 | |2020 | ||
|%y | |%y | ||
|20 | |20 | ||
|- | |- | ||
! rowspan="2" |월 | ! rowspan="2" |월 | ||
|%m | |%m | ||
|01 | |01 | ||
|%B | |%B | ||
|1월 | |1월 | ||
|- | |- | ||
|%b | |%b | ||
|1 | |1 | ||
| | | | ||
| | | | ||
|- | |- | ||
!일 | !일 | ||
|%d | |%d | ||
|22 | |22 | ||
| | | | ||
| | | | ||
|- | |- | ||
! rowspan="2" |시 | ! rowspan="2" |시 | ||
|%H | |%H | ||
|23 | |23 | ||
|%l | |%l | ||
|11 | |11 | ||
|- | |- | ||
|%p | |%p | ||
|PM | |PM | ||
| | | | ||
| | | | ||
|- | |- | ||
!분 | !분 | ||
|%M | |%M | ||
|24 | |24 | ||
| | | | ||
| | | | ||
|- | |- | ||
!초 | !초 | ||
|%S | |%S | ||
|25 | |25 | ||
| | | | ||
| | | | ||
|- | |- | ||
! rowspan="2" |요일 | ! rowspan="2" |요일 | ||
|%a | |%a | ||
|월 | |월 | ||
|%A | |%A | ||
|월요일 | |월요일 | ||
|- | |- | ||
|%u | |%u | ||
|1~7 | |1~7 | ||
(1:월요일) | (1:월요일) | ||
|%w | |%w | ||
|0~6 | |0~6 | ||
(2:월요일) | (2:월요일) | ||
|} | |} | ||
<br /> | <br /> | ||
===시간변수 관련함수=== | ===시간변수 관련함수=== | ||
{| class="wikitable" | {| class="wikitable" | ||
!이름 | !이름 | ||
!기원 | !기원 | ||
!기능 | !기능 | ||
!사용법 | !사용법 | ||
|- | |- | ||
|format() | |format() | ||
| | | | ||
|형식에 해당하는 데이터만 뽑는다. | |형식에 해당하는 데이터만 뽑는다. | ||
|format(날짜변수, "형식") | |format(날짜변수, "형식") | ||
|} | |} | ||
==문자열 관련함수== | ==문자열 관련함수== | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
!이름 | !이름 | ||
!기원 | !기원 | ||
!기능 | !기능 | ||
!사용법 | !사용법 | ||
|- | |- | ||
|substr() | |substr() | ||
| | | | ||
|문자열 추출 | |문자열 추출 | ||
|substr(데이터, 시작번호,끝번호) | |substr(데이터, 시작번호,끝번호) | ||
substr(데이터셋$열이름[인덱스], 1, 5) | substr(데이터셋$열이름[인덱스], 1, 5) | ||
|- | |- | ||
|paste() | |paste() | ||
| | | | ||
|문자열 붙이기 | |문자열 붙이기 | ||
맨 뒤에 ,<code>set="사이에 넣을 것"</code> 을 사용하면 붙일 문자들 사이에 들어갈 것을 지정할 수 있다. | 맨 뒤에 ,<code>set="사이에 넣을 것"</code> 을 사용하면 붙일 문자들 사이에 들어갈 것을 지정할 수 있다. | ||
(기본설정은 띄어쓰기 한 칸) | (기본설정은 띄어쓰기 한 칸) | ||
paste(colnames(데이터셋)[숫자], " ", 연산))) 형태로 쓸 수 있다. | paste(colnames(데이터셋)[숫자], " ", 연산))) 형태로 쓸 수 있다. | ||
|paste(데이터, "붙일문자", "붙일문자2", ....) | |paste(데이터, "붙일문자", "붙일문자2", ....) | ||
|- | |- | ||
|strsplit() | |strsplit() | ||
| | | | ||
|문자열 분리 | |문자열 분리 | ||
"나눌문자열"을 기준으로 문자열들을 나눈다. | "나눌문자열"을 기준으로 문자열들을 나눈다. | ||
|strsplit(데이터, split="나눌문자열") | |strsplit(데이터, split="나눌문자열") | ||
|- | |- | ||
|gsub() | |gsub() | ||
| | | | ||
|문자열 대체 | |문자열 대체 | ||
|gsub("원래문자열", "대체할문자열", 데이터) | |gsub("원래문자열", "대체할문자열", 데이터) | ||
|} | |} | ||
==쓸 만한 활용법== | ==쓸 만한 활용법== | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
! | |||
! | ! | ||
! | |||
! | ! | ||
|- | |- | ||
| | |||
| | |||
| | | | ||
| | |||
|- | |- | ||
| | |||
| | | | ||
| | |||
| | |||
| | |||
|- | |- | ||
| | | | ||
| | |||
| | |||
|- | |- | ||
| | |||
| | | | ||
| | |||
| | |||
| | |||
|- | |- | ||
| | | | ||
| | | | ||
| | | | ||
|} | |} |
2020년 8월 9일 (일) 16:20 판
R언어 공부를 위한 틀 틀:R
변수형
변수타입 | 기원 | 설명 |
---|---|---|
chr | character | 문자열 |
int | integer | 정수 |
num | numeric | 자연수 |
Factor | 명목형 변수 | |
Posixct | 시간변수(년월일시분초) | |
Tseries | 시계열 변수 | |
an | Null
NA |
결측치(빈 값) |
변수명 | 설명 | 정보량 | 변환 |
---|---|---|---|
명목형변수 | 특성에 따라 명칭을 주어 구분하는 변수 | 아래로 갈수록 정보량이 많아진다. | 아래에서 위로 변환은 가능하지만,
위에서 아래로의 변환은 정보량 부족으로 불가. |
서열형변수 | 명목형변수에서 서열정보 추가 | ||
연속형변수 | 셀 수 없으며, 구간(0~10)으로 정의되는 변수 |
데이터 파악 관련함수
이름 | 기원 | 기능 | 사용법 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
str() | 데이터의 타입 확인 | str(데이터) | |||||||||
is() | is | 데이터의 타입 확인
str이 변수타입을 알려준다면,
is는 참과 거짓으로 알려준다.
결과값은 기존 데이터형의 좌표목록으로 나온다. |
is.integer(데이터) | ||||||||
as() | as | 변수타입을 바꾼다. | as.integer(데이터) | ||||||||
summary() | summary | 해당 데이터의 요약정보를 본다.
변수타입과 관련 정보들을 보여준다.
|
summary(데이터) |
데이터 조작 관련함수
데이터 수치 조작
이름 | 기원 | 기능 | 사용법 |
---|---|---|---|
quantile() | qunatile | 각 분위수에 해당하는 값을 꺼낸다. | quantile(데이터셋$열이름, probs = c(0.1, 0.3, 0.5, 0.7, 0.9)
10, 30, 50, 70, 90%에 해당하는 값들을 보여준다.
[이걸 변수에 저장하거나 하진 못하나?] |
sum() | sum | 합. | sum(데이터셋$열이름) |
rowSums() | 행별 합. | rowSums(데이터셋[범위])
rowSums(데이터셋[2:8]) | |
colSums() | 열별 합. | colSums(데이터셋[범위]) | |
mean() | mean | 평균. | mean(데이터셋$열이름) |
rowMeans() | 행별 평균. | rowMeans(데이터셋[범위]) | |
sd() | 표준편차 | sd(데이터셋$열이름) |
위 연산들에서 결측치를 생략하고 계산하고자 한다면 뒤에 na.rm=True
를 붙여주면 된다. ex) sum(데이터셋[범위], na.rm=True)
데이터 통계
이름 | 기원 | 기능 | 사용법 |
---|---|---|---|
table() | table | 빈도 테이블 작성.
열 안에 속한 요소가 몇 번씩 등장하는지 세어 테이블로 만든다. |
테이블명 = as.data.frame(table(데이터셋$열이름)) |
xtabs() | 2차원 테이블 작성.
열이름1과 열이름2 안에 나타나는 조합의 수별로 몇 번씩 등장하는지 센다. |
테이블명 = as.data.frame(xtabs(~ 데이터셋$열이름1 + 데이터셋$열이름2)) |
시간변수 다루기
3가지 방법이 있다.
방법 | 사용처 | 사용예시 |
---|---|---|
as.Date() | 년-월-일 형태 | as.Date(변수, formet="날짜형식")
as.Date(2020-08-03, formet="%Y-%m-%d" |
as.POSIXct() | 년-월-일 시:분:초 형태 | |
lubridate패키지 |
날짜형식
2020년 1월 22일 23시 24분 25초 월요일 이라고 할 때의 데이터 표시를 알아보자.
형식 | 예시 | 형식 | 예시 | |
---|---|---|---|---|
세기 | %C | 20세기 | ||
년 | %Y | 2020 | %y | 20 |
월 | %m | 01 | %B | 1월 |
%b | 1 | |||
일 | %d | 22 | ||
시 | %H | 23 | %l | 11 |
%p | PM | |||
분 | %M | 24 | ||
초 | %S | 25 | ||
요일 | %a | 월 | %A | 월요일 |
%u | 1~7
(1:월요일) |
%w | 0~6
(2:월요일) |
시간변수 관련함수
이름 | 기원 | 기능 | 사용법 |
---|---|---|---|
format() | 형식에 해당하는 데이터만 뽑는다. | format(날짜변수, "형식") |
문자열 관련함수
이름 | 기원 | 기능 | 사용법 |
---|---|---|---|
substr() | 문자열 추출 | substr(데이터, 시작번호,끝번호)
substr(데이터셋$열이름[인덱스], 1, 5) | |
paste() | 문자열 붙이기
맨 뒤에 ,
(기본설정은 띄어쓰기 한 칸)
paste(colnames(데이터셋)[숫자], " ", 연산))) 형태로 쓸 수 있다. |
paste(데이터, "붙일문자", "붙일문자2", ....) | |
strsplit() | 문자열 분리
"나눌문자열"을 기준으로 문자열들을 나눈다. |
strsplit(데이터, split="나눌문자열") | |
gsub() | 문자열 대체 | gsub("원래문자열", "대체할문자열", 데이터) |