300x250
■ 벡터, 리스트, 행렬 다루기
기능 | R코드 | 비고 |
벡터에 데이터 추가 | v<-c(v,newltems) v[length(v)+1]<-newltem |
|
벡터에 데이터 삽입 | append(vec,newvalues,after=n) | |
요인 생성 | f<-factor(v), v:문자열 또는 정수 벡터 f<-factor(v,lecels) |
|
여러 벡터를 합쳐 하나의 벡터와 요인으로 만들기 | comb<-stack(list(v1=v1,v2=v2,v3=v3)) | |
벡터 내 값 조회 | 벡터[c(1,3,5,7)] 벡터[-c(2,4)] |
벡터 내 1,3,5,7번째값 조회 벡터 내 2.4번째 값을 제외하고 조회 |
리스트 | list(숫자,문자,함수) | list 함수의 인자로는 숫자, 문자, 함수가 포함. |
리스트 생성하기 | L<-list(x,y,z) L<-list(valuename1=data, valuename2=data, valuename3=data) L<-list(valuename1=vec, valuename2=vec, valuename3=vec) |
|
리스트 원소 선택 | L[[n]] : n번째 원소, L[c(n1,n2,n3,⋯,nk):목록 |
|
이름으로 리스트 원소 선택 | L[["name"]], L$name |
|
리스트에서 원소 제거 | L[["name"]]<-NULL | |
NULL 원소를 리스트에서 제거 | L[sapply(L,is.null)<-NULL L[L==o]<-NULL, L[is.na(L)]<-NULL |
|
행렬 | matrix(data, 행수, 열수) a<-matrix(data,2,3),d<-matrix(0,4,5) e<-matrix(1:20,4,5) |
data 대신 숫자를 입력하면 행렬의 값이 동일한 수치값 부여 |
차원 | dim(행렬), dim(a) | a행렬의 차원은 2행 3열 |
대각(diagonal) | diag(행렬),diag(b) | b 행렬의 대각선의 값 반환 |
전치(transpose) | t(행렬), t(a) | a 행렬의 전치행렬을 반환 |
역 | solve(matrix) | |
행렬의 곱 | 행렬%*%t(행렬), a%*%t(a) | 행렬의 곱 |
행이름 부여 | rownames(a)<-c("행이름1","행이름2","행이름3") | 행의 이름 할당 |
열이름 부여 | colnames(a)<-c("열이름1", "열이름2") | 열의 이름할당 |
행렬의 연산 +,- | f+f,f-f f+1,f-1 |
행렬간의 덧셈, 뺄셈 행렬 상수간 덧셈, 뺄셈 |
행렬의 연산 * | f%*%f f*3 |
행렬 간의 곱 행렬 상수 간 곱 |
행렬에서 행, 열 선택하기 | vec<-matrix[1, ] vec<-matrix[ ,3] |
■ 벡터, 리스트, 행렬 다루기
기능 | R코드 | 비고 |
데이터프레임 | data.frame(벡터,벡터,벡터) | 벡터들로 데이터셋 생성 |
레고드 생성 | new<-data.frame(a=1,b=2,c=3,d="a") | 레코드 생성시 숫자, 문자를 함께 사용가능 |
열데이터(변수)로 데이터 프레임 만들기 | dfm<-data.frame(v1,v2,v3,f1,f2) dfm<-as.data.frame(list,of.vectors) |
|
데이터셋 행결합 | rbind(dfm1,dfm2) newdata<-rbind(newdata.new) |
두 데이터 프레임을 행으로 결합 |
데이터셋 열결합 | cbine(dfm1,dfm2) cbind(newdata,newcol)#newcol=1:150 |
두 데이터프레임을 열로 결합 |
데이터 프레임 할당 | N=1,000,000 dtfm<-data.frame(dosange=numeric(N), lab=character(N),respones=numeric(N)) |
|
데이터 프레임 조회1 | dfrm[dfrm$gender="m"] | 데이터셋내 성별이 남성만 조회 |
데이터 프레임 조회2 | dfrm[dfrm$변수1>4&dfrm$변수2>5,c(변수3,변수4)] | 데이터셋의 변수 1과 변수2의 조건에 만족하는 레코드의 변수 3과 변수4 만을 조회 |
데이터 프레임 조회3 | dfrm[grep("문자",dfrm$변수1,ignore.case=T),c("변수2,변수3")] | 데이터셋의 변수1 내 "문자"가 들어있는 케이스들의 변수2, 변수3 값을 조회 |
데이터셋 조회 | subset(dfrm, select=변수, subset=변수>조건) | 데이터셋의 특정변수의 값이 조건이 맞는 변수셋 조회, subset은 벡터와 리스트에서도 선택가능 |
데이터 선택 | lst[[2]],lst1[2],lst1[2,],lst1[,2] lst1[["name"]], lst1$name, lst1[c("name1","name2",⋯,"name k")] |
|
데이터 병합 | merge(df1,df2,by="df1과 df2의 공통 열이름") | 공통변수로 데이터셋 병합 |
열 네임 조회 | colnames(변수) | 변수의 속성들을 조회 |
행, 열 선택 | subset(dfm,select=열이름) subset(dfm,select=c(열이름1, 열이름2,⋯,열이름n) subset(dfm,select=dufdlfma, subset=(조건)) |
열이름에 ""표시안함, 조건에 맞는 행의 열 자료만 선택 |
이름으로 열 제거 | subset(dfm,select=-"열이름") | |
열 이름 바꾸기 | colnames(dfm)<-newnames | |
NA 있는 행 삭제 | NA_cleaning<-na.omit(dfm) | |
데이터 프레임 두개 합치기 | 열(cbind_dfm<-cbind(dfm1,dfm2) 행(rbind_dfm<-rbind(dfm1,dfm2) |
(유의사항1) cbind는 행의 개수가 동일해야함. -recycling rule (유의사항2) rbind는 열의 개수와 열의 이름이 동일해야함. |
두 개의 데이터 프레임을 동일한 변수 기준으로 합치기 | merge(dfm1,dfm2,by="T_name") merge(dfm1,dfm2,by="T_name",all=T) |
■ 자료형 데이터 구조변환
기능 | R코드 |
데이터 프레임의 내용에 쉽게 접근하기 | with(dfm,expr) attach(dfm) detach(dfm) |
자료형 변환하기 | as.charater() as.complex() as.numeric() 또는 as.double() as.integer() as.logical() |
데이터 구조 변환하기 | as.data.frame() as.list() as.matrix() as.vector() |
■ 데이터 구조 변경
벡터 → 리스트 | as.list(vec) | 행렬 →벡터 | as. vector(mat) |
벡터 → 행렬 |
1열짜리 행렬 : cbind(vec) 또는 as.matrix(vec) 1행짜리행렬 :rbind(vec) n x m 행렬 : matrix(vec, n,m) |
행렬 →리스트 | as.list(mat) |
벡터 → 데이터프레임 | 1열짜리 데이터 프레임: as. data.frame(vec) 1행짜리 데이터 프레임: as.data.frame(rbind(vec)) |
행렬 →데이터프레임 | as.data.frame(mat) |
리스트 → 벡터 | unlist(lst) | 데이터 프레임 → 벡터 | 1열짜리 데이터 프레임: dfm[[1]] or dfm[,1] 1행짜리 데이터 프레임: dfm[1,] |
리스트 → 행렬 | 1열짜리 행렬 : as.matrix(lst) 1행짜리행렬 : as.matrix(rbind(lst)) n x m 행렬 : matrix(lst,n,m) |
데이터 프레임 → 리스트 | as.list(dfm) |
리스트 → 데이터프레임 | 목록 원소들이 데이터의 열이면: as.data.frame(lst) 리스트 원소들이 데이터의 행이면: rbind(obs[[1]],obs[[2]]) |
데이터 프레임 → 행렬 | as.matrix(dfm) |
■ 벡터의 기본연산
기능 | R코드 | 비고 |
벡터연산 | 벡터1 + 벡터2 벡터2 - 벡터2 벡터1 * 벡터2 벡터1 ^ 벡터2 |
덧셈연산 뺄셈연산 곱셈연산 승수연산 |
함수적용 | sapply(변수, 연산함수) sapply(a,log) |
연산 및 적용함수를 통해 변수에 적용 |
파일저장1 | write.csv(변수이름, "파일이름.csv") write.csv(a,"test.csv") |
파일로 저장 |
파일저장2 | save(변수이름, file="파일이름,Rdata") save(a,file="a.Rdata") |
R파일로 저장 |
파일읽기 | read.csv("파일이름.csv") read.csv("a.csv") |
파일읽기 |
파일 불러오기 | load("파일.R") load("a.R") source("a.R") |
R파일 불러오기 |
데이터 삭제 | rm(변수) rm(list=ls(all=TRUE)) |
변수를 메모리에서 삭제 모든 변수를 메모리에서 삭제 |
■ 그 외 간단한 함수
기능 | R코드 | 비고 |
데이터 불러오기 | data() data(데이터셋) |
R에 내장된 데이터셋 리스트를 보여줌 데이터셋을 불러들임 |
데이터셋 요약 | summary(데이터셋) | 데이터 셋 변수 내용을 요약 |
데이터셋 조회 | head(데이터셋) | 6개 레코드까지 데이터 조회 |
패키지 설치 | install.packages("패키지명") | 패키지를 설치 |
패키지 불러오기 | library("패키지 명") | 패키지를 불러들임 |
작업종료 | q() | 작업을 종료 |
워킹디렉토리 지정 | setwd("~/") | R데이터, 파일을 로드하거나 저장할 때 워킹 디렉토리를 지정 |
이 글과 함께 읽으면 좋은글
R 기초 함수와 문법 - 1
■ 기초 기능 R코드 비고 출력하기 print() : 출력형식을 지정할 필요없음. 한번에 하나의 객체만 출력 cat() : 여러 항목을 묶어서 연결된 결과로 출력, 복합적 데이터 구조 (행렬, list 등) 를 출력 할
chinggu2000.tistory.com
R 기초 함수와 문법 - 3
■데이터 변형 _ 주요 코드 기능 R코드 비고 요인으로 집단 정의 v w f 벡터를 여러집단으로 분할 (벡터의 길이만 같으면 됨) groups groups groups 두 함수 모두 벡터로 된 리스트를 반환 데이터 프레임
chinggu2000.tistory.com
반응형
'AI 관련 > ADsP, ADP' 카테고리의 다른 글
ADsP 1과목 공부_1 (0) | 2021.05.07 |
---|---|
ADsP 2과목 공부 _1 (0) | 2021.05.06 |
ADsP 3과목 공부 _1 (0) | 2021.05.04 |
R 기초 함수와 문법 - 3 (0) | 2021.04.24 |
R 기초 함수와 문법 - 1 (0) | 2021.04.24 |
댓글