R:자료구조
편집하기
Sam
(
토론
|
기여
)
님의 2020년 8월 11일 (화) 17:29 판
(
→자주 사용하는 자료형
)
(
차이
)
← 이전 판
|
최신판
(
차이
) |
다음 판 →
(
차이
)
둘러보기로 이동
검색으로 이동
경고: 이 문서의 오래된 판을 편집하고 있습니다.
이것을 게시하면, 이 판 이후로 바뀐 모든 편집이 사라집니다.
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
{{R}}<br /> ==개요== 자료구조를 수용하기 위한 자료객체. ===종류=== {| class="wikitable" |+ !객체 !코드명 !차원 !유형 !혼합가능여부 |- |벡터 |vector |1 |수치, 문자, 복소수, 논리 |불가(하나의 유형만 사용 가능) |- |요인 |factor |1 |수치/문자 |불가 |- |행렬 |matrix |2 |수치, 문자, 복소수, 논리 |불가 |- |데이터프레임 |data.frame |2 |수치, 문자, 복소수, 논리 |가능 |- |시계열 | |2 |수치, 문자, 복소수, 논리 |불가 |- |배열 |array |2차원이상 |수치, 문자, 복소수, 논리 |불가 |- |리스트 |list |2차원이상 |수치, 문자, 복소수, 논리, 표현식, call 등 |가능 |} ==자주 사용하는 자료형== {| class="wikitable" |+ !이름 !벡터 !행렬 !데이터프레임 |- |설명 |Combind. 하나의 열을 의미한다. 다른 2차원 이상의 데이터에서 인덱스범위를 지정하는 데 쓰이기도 한다. 벡터를 결합하여 행렬이나 데이터프레임을 만들기도 한다. |Matrix. |dataframe. |- |생성 |c(데이터) |matrix( data=데이터, nrow=행수 ncol=열수 byrow=기준) |data.frame( 변수명(열이름)=벡터1, 변수명(열이름)=벡터2, ) 필요한 벡터만큼 넣는다. {| class="wikitable" |+옵션 !옵션 !설명 |- |자료객체 나열 |나열된 객체들을 다 결합한다. |- |row.names= |행의 이름을 정의한다. NULL(기본값), 숫자, 문자, 벡터따위가 가능. NULL일 경우, 자동으로 일련번호 생성 |- |check.rows= |결합되는 객체들의 행 길이가 동일한지 확인 기본값은 False. |- |check.names= |TRUE일 때 열이름이 중복되지 않은지 확인. |} |- | | | | |- |데이터 접근 |일반 언어에서 처음 인덱스가 0인 것과 달리, R은 1부터 시작한다. {| class="wikitable" |+ !의도 !방법(예시) |- |데이터1개 접근 |벡터명[1] |- |여러 개 접근 |벡터명[c(1,3,5,9)] |- |범위 접근 |벡터명[2:5] |- |제외하고 접근 |벡터명[-3] |} | colspan="2" | {| class="wikitable" !의도 !방법(예시) |- |데이터1개 접근 |구조명[2,3] |- |여러 개 접근 |구조명[c(1,2,3), ] |- |행 전부 |구조명[1, ] |- |열 전부 |구조명[ ,1] |- |범위 접근 |구조명[2:3, ] |- |제외하고 접근 |구조명[ ,-1] |} 여러 방법을 조합해 <code>구조명[2:3, -2]</code> 등의 형태로 사용 가능 |- |자료형 변환 |as.vector(객체) |as.matrix(객체) |as.data.frame(객체) |} ==데이터형 관련 함수== {| class="wikitable" !이름 !기원 !기능 !사용법 |- |head() |head |지정한 행만큼 출력한다. |head(데이터셋, 지정숫자) |- |str() | |데이터를 확인한다. |str(데이터셋) |- |as() |as |데이터형을 변환한다. |열 전체의 변수형을 변환하려면 다음과 같이 한다. 데이터셋$열이름 = as.변수형(데이터셋$열이름) |} <br /> ==벡터 관련 함수== {| class="wikitable" |+ !이름 !기원 !기능 !사용법 |- |seq() |sequence |순차적 데이터 생성. {| class="wikitable" |+ !옵션 !설명 |- |along.with=객체명 |해당하는 객체와 동일한 크기로 자료열을 생성. |- |length=자연수 |by옵션 대신 이 옵션을 넣으면 증가범위를 자동으로 <code>(마지막-시작) / (자연수-1)</code> 로 잡는다. |} <br /> |seq(from=시작숫자, to=마지막숫자, by=증가범위) |- |rep() |repeat |반복 데이터 생성 |rep(반복할값, 반복횟수) |- |시작:끝 | |시작부터 끝값에 이르기까지 1, -1 간격으로 벡터를 생성한다.(다른 언어에서도 흔히 쓰이는 방식) |시작:끝 |- |length() |length |데이터 크기 파악 |length(벡터) |} ==2차원 데이터 관련 함수== 직관적인 사용을 위해 %>%를 사용하는데, 이는 dplyr의 기능이다. {| class="wikitable" !이름 !기원 !기능 !사용법 |- |dim() | |데이터프레임이나 행렬에서 데이터 크기 파악 행과 열 숫자를 순서대로 제공한다. |dim(데이터셋) |- | | | | |} ===데이터 추가하기, 연산하기=== {| class="wikitable" !이름 !기원 !기능 !사용법 |- |mutate() | |하나의 변수를 추가한다. |데이터셋 = 데이터셋 %>% mutate(추가할열이름 = 연산식) |- |mutate_if() | |조건에 해당하면 실행한다. mutate_if(판별문, 실행문) |데이터셋 = 데이터셋 %>% mutate_if(is.integer, as.numeric) |- |mutate_at() | |지정한 변수들에 대해 계산 적용. 열이름에 '-'를 넣으면 그 변수는 빼고 계산한다. |데이터셋 = 데이터셋 %>% mutate_at(vars(열이름1, 열이름2, ...,), 연산식) |} ===데이터 추출=== {| class="wikitable" !이름 !기원 !기능 !사용법 |- |slice() | |index를 설정하여 원하는 행을 추출한다. |데이터셋 = 데이터셋 %>% slice(1:10) |- |select() | |index를 설정하여 원하는 열을 추출한다. column명을 쓸 수 있다. |데이터셋 = 데이터셋 %>% select(1:10, 열이름1, 열이름2, ...) |- |filter() subset() | |원하는 조건에 해당하는 데이터 추출. |데이터셋 = 데이터셋 %>% filter(열이름1 = "해당내용") |- |select_if() | |뽑는 조건을 설정할 수 있다. ex) 데이터타입에 따라 뽑는다든가. |데이터셋 = 데이터셋 %>% select_if(is.integer) |- |arrange() | |데이터 정렬. 기본적으로 오름차순인데, 변수에 '-'를 붙여주면 내림차순이 된다. |데이터셋 = 데이터셋 %>% arrange(-열이름) |- |top_n() | |가장 값이 높은 값들을 추출. top_n(숫자, 열이름) |top_n(5, Year) |- |distinct() | |중복데이터 제거. 해당 열이름에서 하나라도 중복되면 지운다. |데이터셋 = 데이터셋 %>% distinct(열이름1, 열이름2, 열이름3, ...) |} ==데이터 조작 관련함수== <br /> ===데이터 수치 조작=== {| class="wikitable" !이름 !기원 !기능 !사용법 |- |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(데이터셋$열이름) |}위 연산들에서 결측치를 생략하고 계산하고자 한다면 뒤에 <code>na.rm=True</code>를 붙여주면 된다. ex) <code>sum(데이터셋[범위], na.rm=True)</code> <br /> ===데이터 통계=== {| class="wikitable" !이름 !기원 !기능 !사용법 |- |table() |table |빈도 테이블 작성. 열 안에 속한 요소가 몇 번씩 등장하는지 세어 테이블로 만든다. |테이블명 = as.data.frame(table(데이터셋$열이름)) |- |xtabs() | |2차원 테이블 작성. 열이름1과 열이름2 안에 나타나는 조합의 수별로 몇 번씩 등장하는지 센다. |테이블명 = as.data.frame(xtabs(~ 데이터셋$열이름1 + 데이터셋$열이름2)) |}
요약:
학교의 모든 지식. SMwiki에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
학교의 모든 지식. SMwiki:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
이 문서에서 사용한 틀:
틀:R
(
편집
)
둘러보기 메뉴
개인 도구
로그인하지 않음
토론
기여
로그인
이름공간
문서
토론
한국어
보기
읽기
편집
원본 편집
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보