■ 기초
기능 | R코드 | 비고 |
출력하기 | print() : 출력형식을 지정할 필요없음. 한번에 하나의 객체만 출력 cat() : 여러 항목을 묶어서 연결된 결과로 출력, 복합적 데이터 구조 (행렬, list 등) 를 출력 할수 있음. |
커맨드 프롬프트에 변수나 표현식을 입력 예) print(a), cat("a","b","c") |
변수에 값 할당하기 (대입연산자) |
<- , <<- , = , -> | |
변수 목록보기 | ls( ) , ls.str90 | |
변수 삭제하기 | rm( ) | rm(list=ls( )): 모든변수들을 삭제할때 사용 |
벡터생성하기 | c( ) | 벡터의 원소중 하나라도 문자가 있으면 모든 원소의 모드는 문자 형태로 변환됨. |
R함수 정의하기 | function(매개변수1, 매개변수2,,,,,매개변수n ){expr 1, expr2 ,...,expr m} | <expr 의 특징> 지역변수 : 단순히 값을 ㄱ대입하기만 하면 지역변수로 생성되고, 함수가 종료되면 지역변수는삭제됨. 조건부실행 : if 문 반복실행 : for문, while문, repeat문 전역변수 : <<-를 사용 하여 전역변수로 지정할 수 있지만 추천하지 않음. |
■ 소개
기능 | R코드 | 비고 |
데이터할당 | a<-1,a=1 | |
화면 프린트 | a, print(a) | print함수 |
결합 | x<-c(1,2,3,4,) x<-c(6.25,3.14,5.18) x<-c("fee","fie","fun") x<-c(x,y,z) |
c함수는 문자, 숫자, 논리값, 변수를 모두결합 가능하며 벡터와 데이터셋을 생성가능 |
수열 | 1:5 9:-2 seq(from=0,to=20,by=2) seq(from=0,to=20,length.out=5) |
콜론(:), seq함수를 사용하여 시작값에서 최종값까지의 연속적인 숫자 생성, seq함수는 간격과 결과 값의 길이를 제한가능 |
반복 | rep(1,time=5) rep(1:4,each=2), rep(c,each=2) |
rep 함수는 숫자나 변수의 값들을 time 인자에 지정한 횟수만큼 반복 |
문자 붙이기 | A<-paste("a","b","c",sep="-") paste(A,c("e","f"), paste(A,10,sep=" ") |
paste 함수는 문자열을 sep 인자에 지정한 구분자로 연결시켜줌. |
문자열 추출 | substr("Bigdataanalysis",1.4) | substr(문자열, 시작점, 끝점)함수는 문자열의 특정부분을 추출가능 |
논리값 | a<-True, a<-t, b<-False, b<-F | T도 True로 인식 |
논리연산자 | 같다 == 같지 않다 != 작다, 보다작다 <,<= 크다, 크거나같다 >,>= |
|
벡터의 원소 선택하기 | V[ n] : 선택하고자 하는 자리수 V[-n] : 제외하고자 하는 자리수 |
n은 원소의 자리수 V는 벡터의 이름 |
■ 연산
연산자 우선순위 | 뜻 | 표현방법 |
[ [[ | 인덱스 | a[1] |
$ | 요소뽑아내기, 슬롯 뽑아내기 | a$coef |
^ | 지수 | 5^2 |
-+ | 단항 마이너스와 플러스 부호 | -3,+5 |
: | 수열생성 | 1:10 |
%any% | 특수연산자 | %/%나눗셈 몫, %%나눗셈나머지, %*%행렬의 곱 |
* / | 곱하기, 나누기 | 3*5, 3/5 |
+- | 더하기, 빼기 | 3+5 |
== != <> <= >= | 비교 | 3==5 |
! | 논리부정 | !(3==5) |
& | 논리 "and", 단축(short-circuit)"and" | TRUE&TRUE |
| | 논리 "or", 단축(short-circuit)"or" | TRUE|TRUE |
~ | 식(formula) | lm(log(brain)~log(body),data=Animals) |
-> ->> | 오른쪽 대입 | 3->a |
= | 대입(오른쪽을 왼쪽으로) | a=3 |
<- <<- | 대입(오른쪽을 왼쪽으로) | a<-3 |
? | 도움말 | ?lm |
■ 기초통계
기능 | R코드 | 비고 |
평균 | mean(변수) | 변수의 평균산출 |
합계 | sum(변수) | 변수의 합계산출 |
중앙값 | median(변수) | 변수의 중앙값 산출 |
로그 | log(변수) | 변수의 로그 산출 |
표준편차 | sd(변수) | 변수의 표준편차 산출 |
분산 | var(변수) | 변수의 분산 산출 |
공분산 | cov(변수1, 변수2) | 변수간 공분산 산출 |
상관계수 | cor(변수1, 변수2) | 변수간 상관계수 산출 |
변수의 길이 값 | length(변수) | 변수간 길이를 값을로 출력 |
■ R 데이터 입력 출력
기능 | R코드 | 비고 |
키보드로 데이터를 입력 | 1)데이터 양이 적어 직접 입력 -c( ) : combine 함수 2) 데이터 편집기를 활용하기 : 빈데이터 프레임을 생성 → 편집기를 불러와서 편집하고 데이터 프레임에 덮어 씌우기 |
|
출력할 내용의 자리수 정의 | R의 부동소수점 표현 : 7자리로 표시 print(pi, digits=num) cat(format(pi,digits=num),"\n") options(digits=num) |
ex)3.14593,314.1593 |
파일에 출력하기 | cat("출력할 내용", 변수, "\n", file="파일이름",append=T) sink("파일이름") ⋯출력할 내용⋯ sink() |
|
파일 목록 보기 | list. files(), list, files(recursive=T, allfiles=T) |
|
Cannot Open File(파일을 열수 없음)해결하기 | 파일위치 :c:\data\sample.txt R에서는 c:datasample.txt |
역슬래쉬를 슬래쉬로 바꾼다. c:/data/sample.txt 역슬래쉬를 쌍으로 표현한다. c:\\data\\sample.txt |
고정자리수 데이터 파일(fixed-width file)읽기 | read.fwf (*파일이름",widths=c(w1,w2,⋯, wn) |
|
테이블로 된 데이터 파일읽기(변수 구분자 포함) | read.table ("파일이름",sep="구분자") |
(주의1) 주소, 이름, 성 등의 텍스트를 요인으로 인식함 (해결1)read.table("파일이름",sep="구분자"),stringsASFactor=F) (주의2) 결측치를 NA가아닌 다른 문자열로 표현할 때 (SAS) (해결2)read. table("파일이름",sep="구분자", na.strings=".") (주의3)파일의 첫행을 변수 명으로 인식하고자 할때 (해결3) read.table("파일이름",sep="구분자", header=T) |
CSV데이터 파일 읽기(변수구분자는 쉼표) | read.csv ("파일이름",header=T) |
(주의1)주소, 이름, 성 등의 텍스트를 요인으로 인식함. (해결2) read.csv("파일이름",header=T,as.is=T) |
CSV데이터 파일로 출력 (변수 구분자는 쉼표) | write.csv (행렬또는 데이터 프레임,"파일이름",row.names=F) |
(주의1) 1행이 변수명으로 자동 인식하지만 변수명이 아닐경우 (해결1) write.csv(dfm,"파일이름",col.names=F) (주의2)1열에 레코드 번호를 자동생성 하지만 레코드 번호를 생성하지 않을경우 (해결2) write.csv(dfm,"파일이름",row.names=F) |
웹에서 데이터 파일을 읽어 올때 (변수 구분자는 쉼표) |
read.csv ("http://www.example.com/download/data.csv") read.table("http://www.example.com/download/data.txt") |
what=numeric(0) 토큰을 숫자로 해석 what=integer(0) 토큰을 정수로 해석 what=complex(0) 토큰을 복소수로 해석 what=character(0) 토큰을 문자로 해석 what=logical(0) 토큰을 논리값으로 |
html에서 테이블 읽어 올때 | library(XML) url<-'http://www.example.com/data/table.html' t<-readHTMLTable(url) |
|
복잡한 구조의 파일(웹 테이블)읽기 | lines<-readLines("a.txt",n=num) token<-scan("a.txt",what=numeric(0)) token<-scan("a.txt",what=list(v1=character(0),v2=numeric(0)) token<-scan("a.txt",what=list(v1-character(0),v2=numeric(0),n=num,nlines=num,skip=num,na.strings=list) |
이 글과 함께 읽으면 좋은글
'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 기초 함수와 문법 - 2 (0) | 2021.04.24 |
댓글