R:자료형: 두 판 사이의 차이
(→변수형) |
잔글 (→문자열 관련함수) |
||
(같은 사용자의 중간 판 23개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
{{R}}<br /> | {{R}}<br /> | ||
== | ==자료형== | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
!계열 | |||
!변수타입 | !변수타입 | ||
!기원 | !기원 | ||
!설명 | !설명 | ||
|- | |- | ||
|문자 | |||
|chr | |chr | ||
|character | |character | ||
|문자열 | |||
|문자열. "", <nowiki>''</nowiki> 사이에 쓸 수 있다. | |||
|- | |- | ||
| rowspan="4" |수 | |||
|num | |||
|numeric | |||
|수치형(모두 포함) | |||
|- | |||
|int | |int | ||
|integer | |integer | ||
|정수 | |정수 | ||
|- | |- | ||
| | |dbl | ||
| | |double | ||
| | |실수 | ||
|- | |- | ||
| | | | ||
| | |complex | ||
|복소수 | |||
|- | |- | ||
|논리 | |||
|logi | |||
|boolean | |||
|명목형 변수. 모든 철자를 대문자로 쓴다. TRUE, FALSE, T, F 앞글자만 써도 된다. | |||
|- | |||
| rowspan="2" |시간 | |||
| | |||
|Posixct | |Posixct | ||
|시간변수(년월일시분초) | |시간변수(년월일시분초) | ||
|- | |- | ||
| | |||
|Tseries | |Tseries | ||
|시계열 변수 | |시계열 변수 | ||
|- | |||
| rowspan="3" |특수 | |||
|na | |||
|NA | |||
|결측치(빈 값). Not Available. | |||
|- | |- | ||
| | |null | ||
| | |null | ||
|빈 값. 의도적으로 비워둔 값으로, 연산이 안된다. | |||
| | |- | ||
|nan | |||
|NAN | |||
|수학적으로 정의가 불가능한 경우 | |||
|- | |||
| | |||
|inf | |||
|infinite | |||
|무한대 | |||
|} | |} | ||
===연산 우선순위=== | |||
연산 우선순위는 다음과 같다. <code>문자>복소수>수치>논리</code> | |||
===다른 유형끼리의 연산=== | |||
다른 유형끼리 연산하면 강제로 하나의 유형으로 통일된다. 우선순위는 위와 같다. | |||
<br /><br /> | |||
==변수== | |||
데이터를 저장해 놓고 그 위치를 가리키기 위해. | |||
R에선 하나의 열을 변수로 취급하여 다루기도 한다.(보통은 1개의 열을 한꺼번에 취급하니까.) | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
!변수명 | !변수명 | ||
!설명 | !설명 | ||
!정보량 | !정보량 | ||
!변환 | !변환 | ||
|- | |- | ||
|명목형변수 | |명목형변수 | ||
|특성에 따라 명칭을 주어 구분하는 변수 | |특성에 따라 명칭을 주어 구분하는 변수 | ||
| rowspan="3" |아래로 갈수록 정보량이 많아진다. | | rowspan="3" |아래로 갈수록 정보량이 많아진다. | ||
| rowspan="3" |아래에서 위로 변환은 가능하지만, | | rowspan="3" |아래에서 위로 변환은 가능하지만, | ||
위에서 아래로의 변환은 정보량 부족으로 불가. | 위에서 아래로의 변환은 정보량 부족으로 불가. | ||
|- | |- | ||
|서열형변수 | |서열형변수 | ||
|명목형변수에서 서열정보 추가 | |명목형변수에서 서열정보 추가 | ||
|- | |- | ||
|연속형변수 | |연속형변수 | ||
|셀 수 없으며, 구간(0~10)으로 정의되는 변수 | |셀 수 없으며, 구간(0~10)으로 정의되는 변수 | ||
|} | |} | ||
==데이터 파악 관련함수== | ==데이터 파악 관련함수== | ||
{| class="wikitable" | {| class="wikitable" | ||
!이름 | !이름 | ||
!기원 | !기원 | ||
!기능 | !기능 | ||
!사용법 | !사용법 | ||
|- | |- | ||
|str() | |str() | ||
| | | | ||
|데이터의 타입 확인 | |||
|데이터의 타입 확인. | |||
데이터 축약타입과 그 값을 보여준다. | |||
객체구조를 요약해 출력해준다. | |||
|str(데이터) | |str(데이터) | ||
|- | |- | ||
|mode() | |||
class() | |||
| | |||
|데이터 타입만 보여준다.(축약x) | |||
|mode(데이터) | |||
|- | |||
|is() | |is() | ||
|is | |is | ||
|데이터의 타입 확인 | |데이터의 타입 확인 | ||
str이 변수타입을 알려준다면, | str이 변수타입을 알려준다면, | ||
77번째 줄: | 182번째 줄: | ||
결과값은 기존 데이터형의 좌표목록으로 나온다. | 결과값은 기존 데이터형의 좌표목록으로 나온다. | ||
|is.integer(데이터) | |is.integer(데이터) | ||
|- | |- | ||
|as() | |as() | ||
|as | |as | ||
|변수타입을 바꾼다. | |변수타입을 바꾼다. | ||
다만, as.numeric("sam") 등 말이 안되는 형태는 na를 반환한다. | |||
|as.integer(데이터) | |as.integer(데이터) | ||
as(데이터, 자료형) | |||
|- | |- | ||
|summary() | |summary() | ||
|summary | |summary | ||
|해당 데이터의 요약정보를 본다. | |해당 데이터의 요약정보를 본다. | ||
변수타입과 관련 정보들을 보여준다. | 변수타입과 관련 정보들을 보여준다. | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
!데이터형 | !데이터형 | ||
!결과 | !결과 | ||
|- | |- | ||
|Factor | |Factor | ||
|Low, Mid, High에 해당하는 집계를 보여준다. | |Low, Mid, High에 해당하는 집계를 보여준다. | ||
|- | |- | ||
|Numeric | |Numeric | ||
|최솟값, 최대값, 평균, 각 분위수 | |최솟값, 최대값, 평균, 각 분위수 | ||
1분위수는 하위 25%에 해당하는 값. | 1분위수는 하위 25%에 해당하는 값. | ||
103번째 줄: | 232번째 줄: | ||
3분위수는 상위 25%에 해당하는 값. | 3분위수는 상위 25%에 해당하는 값. | ||
|- | |- | ||
| | | | ||
| | | | ||
|} | |} | ||
|summary(데이터) | |summary(데이터) | ||
|- | |- | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|} | |} | ||
==시간변수 다루기== | ==시간변수 다루기== | ||
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(날짜변수, "형식") | ||
|- | |||
|sys.date() | |||
| | |||
|현재시간. 년월일. | |||
| | |||
|- | |||
|date() | |||
| | |||
|현재시간. 요일 달 일 시분초 년 | |||
| | |||
|- | |||
|sys.time() | |||
| | |||
|현재시간. 년월일 시분초 | |||
| | |||
|- | |||
|difftime() | |||
| | |||
|시간 사이의 크기를 계산한다. | |||
{| class="wikitable" | |||
|+ | |||
!옵션 | |||
!설명 | |||
|- | |||
|units= | |||
|"day", "week" 등의 옵션값 가능. | |||
|- | |||
| | |||
| | |||
|- | |||
| | |||
| | |||
|} | |||
|difftime(시간1, 시간2, units="day") | |||
|} | |} | ||
== | ===연산=== | ||
{| class="wikitable" | {| 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(데이터, "붙일문자", "붙일문자2", ....) | |paste(데이터, "붙일문자", "붙일문자2", ....) | ||
|- | |- | ||
|str_c() | |||
| | |||
|문자열 붙이기. | |||
| | |||
|- | |||
|strsplit() | |strsplit() | ||
| | | | ||
|문자열 분리 | |문자열 분리 | ||
"나눌문자열"을 기준으로 문자열들을 나눈다. | "나눌문자열"을 기준으로 문자열들을 나눈다. | ||
벡터를 나눌 경우 리스트화 한다. | |||
|strsplit(데이터, split="나눌문자열") | |strsplit(데이터, split="나눌문자열") | ||
|- | |- | ||
|grep() | |||
| | |||
|정의된 문자열을 포함하는 데이터의 인덱스 추출 | |||
|grep("검색할문자열", 데이터) | |||
|- | |||
|gsub() | |gsub() | ||
| | | | ||
|문자열 대체 | |문자열 대체 | ||
|gsub("원래문자열", "대체할문자열", 데이터) | |gsub("원래문자열", "대체할문자열", 데이터) | ||
|- | |||
|str_replace_all() | |||
| | |||
|문자열 치환 | |||
|str_replace_all(문자열, '바꿀문자', '나중문자') | |||
|} | |} | ||
==쓸 만한 활용법== | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
! | |||
! | ! | ||
! | |||
! | ! | ||
|- | |- | ||
| | | | ||
| | |||
| | |||
|- | |- | ||
| | |||
| | | | ||
| | |||
| | |||
| | |||
|- | |- | ||
| | | | ||
| | |||
| | |||
|- | |- | ||
| | |||
| | | | ||
| | |||
| | |||
| | |||
|- | |- | ||
| | | | ||
| | | | ||
| | | | ||
|} | |} |
2020년 9월 26일 (토) 10:32 기준 최신판
R언어 공부를 위한 틀 틀:R
자료형[편집 | 원본 편집]
계열 | 변수타입 | 기원 | 설명 |
---|---|---|---|
문자 | chr | character | 문자열. "", '' 사이에 쓸 수 있다. |
수 | num | numeric | 수치형(모두 포함) |
int | integer | 정수 | |
dbl | double | 실수 | |
complex | 복소수 | ||
논리 | logi | boolean | 명목형 변수. 모든 철자를 대문자로 쓴다. TRUE, FALSE, T, F 앞글자만 써도 된다. |
시간 | Posixct | 시간변수(년월일시분초) | |
Tseries | 시계열 변수 | ||
특수 | na | NA | 결측치(빈 값). Not Available. |
null | null | 빈 값. 의도적으로 비워둔 값으로, 연산이 안된다. | |
nan | NAN | 수학적으로 정의가 불가능한 경우 | |
inf | infinite | 무한대 |
연산 우선순위[편집 | 원본 편집]
연산 우선순위는 다음과 같다. 문자>복소수>수치>논리
다른 유형끼리의 연산[편집 | 원본 편집]
다른 유형끼리 연산하면 강제로 하나의 유형으로 통일된다. 우선순위는 위와 같다.
변수[편집 | 원본 편집]
데이터를 저장해 놓고 그 위치를 가리키기 위해.
R에선 하나의 열을 변수로 취급하여 다루기도 한다.(보통은 1개의 열을 한꺼번에 취급하니까.)
변수명 | 설명 | 정보량 | 변환 |
---|---|---|---|
명목형변수 | 특성에 따라 명칭을 주어 구분하는 변수 | 아래로 갈수록 정보량이 많아진다. | 아래에서 위로 변환은 가능하지만,
위에서 아래로의 변환은 정보량 부족으로 불가. |
서열형변수 | 명목형변수에서 서열정보 추가 | ||
연속형변수 | 셀 수 없으며, 구간(0~10)으로 정의되는 변수 |
데이터 파악 관련함수[편집 | 원본 편집]
이름 | 기원 | 기능 | 사용법 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
str() | 데이터의 타입 확인.
데이터 축약타입과 그 값을 보여준다. 객체구조를 요약해 출력해준다. |
str(데이터) | |||||||||
mode()
class() |
데이터 타입만 보여준다.(축약x) | mode(데이터) | |||||||||
is() | is | 데이터의 타입 확인
str이 변수타입을 알려준다면, is는 참과 거짓으로 알려준다. 결과값은 기존 데이터형의 좌표목록으로 나온다. |
is.integer(데이터) | ||||||||
as() | as | 변수타입을 바꾼다.
다만, as.numeric("sam") 등 말이 안되는 형태는 na를 반환한다. |
as.integer(데이터)
as(데이터, 자료형) | ||||||||
summary() | summary | 해당 데이터의 요약정보를 본다.
변수타입과 관련 정보들을 보여준다.
|
summary(데이터) | ||||||||
시간변수 다루기[편집 | 원본 편집]
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(날짜변수, "형식") | |||||||||
sys.date() | 현재시간. 년월일. | ||||||||||
date() | 현재시간. 요일 달 일 시분초 년 | ||||||||||
sys.time() | 현재시간. 년월일 시분초 | ||||||||||
difftime() | 시간 사이의 크기를 계산한다.
|
difftime(시간1, 시간2, units="day") |
연산[편집 | 원본 편집]
연산 | 설명 | ||
---|---|---|---|
+, - | 날짜데이터에 +,-연산을 하면 일수에서 더하거나 뺀다. | ||
문자열 관련함수[편집 | 원본 편집]
이름 | 기원 | 기능 | 사용법 |
---|---|---|---|
substr() | 문자열 추출 | substr(데이터, 시작번호,끝번호)
substr(데이터셋$열이름[인덱스], 1, 5) | |
paste() | 문자열 붙이기. 데이터를 문자형으로 변환하여 붙인다.
맨 뒤에 , (기본설정은 띄어쓰기 한 칸) paste(colnames(데이터셋)[숫자], " ", 연산))) 형태로 쓸 수 있다. |
paste(데이터, "붙일문자", "붙일문자2", ....) | |
str_c() | 문자열 붙이기. | ||
strsplit() | 문자열 분리
"나눌문자열"을 기준으로 문자열들을 나눈다. 벡터를 나눌 경우 리스트화 한다. |
strsplit(데이터, split="나눌문자열") | |
grep() | 정의된 문자열을 포함하는 데이터의 인덱스 추출 | grep("검색할문자열", 데이터) | |
gsub() | 문자열 대체 | gsub("원래문자열", "대체할문자열", 데이터) | |
str_replace_all() | 문자열 치환 | str_replace_all(문자열, '바꿀문자', '나중문자') |