R은 2년전에 데이터분석을 위해 잠깐 사용해본 적이 있다. python으로 다루면 내용이 더 쉬웠을 것 같지만 원리는 비슷할테니 새로 배운다는 생각으로 공부하면 될 것 같다.
source(file_name)
- 스크립트 파일 실행
sink(file,append,split)
- R 실행 결과를 특정 파일에서 출력
append
False = 덮어쓰기split
False= 파일에만 표기 ( True일 경우 콘솔에도 표기 )pdf(file_name)
- 그래픽 출력을 pdf 파일로 지정
dev.off()
- 파일 닫기
$R CMD BATCH batch.R
integer / double
True(T) / False(F)
"a" / "abc"
print()
- 출력
a <-1 / a=1
- 값 할당
ls() / ls.str()
- 변수 목록확인
rm()
- 변수 삭제 rm(list=ls())
- 모든 변수 삭제
c()
- 벡터 생성 ( 하나라도 문자면 모든 원소는 문자 )
function()
함수 정의
a<-1 a=1 / 할당
a, print(a) / 출력
x <- c(1,2,3,4)
x <- c(6.2,3.1,2.2)
x <- c("fee","fe","faa")
x <- c(x,y,z)
1:5 / (1,2,3,4,5)
9:-2 / (9,8,7,--- 0,-1,-2)
seq(from=0,to=20,by=2) / (0 , 2, 4 , --- , 18 , 20 )
rep(1,time=5)
rep(1:4,each=2)
rep(c,each=2)
- time에 지정한 횟수만큼 반복
paste(arg,arg,sep=)
- 문자열 구분자로 붙이기
substr(string,st,en)
- substr 추출
T, True, F, False
- 논리값
V[n], V[-n]
- n을 통해 벡터의 원소 선택 / -n을 통해 벡터의 원소 제외하고 선택
당연히 원래 벡터는 변하지 않는다.
mean()
, sum()
, median()
, log()
, sd()
- 표준편차
var()
- 분산 , cov( value1 , value2 )
- 공분산
cor( value1 , value2 )
- 상관관계 , length()
- 길이
INPUT
-> ANALYSIS
-> OUTPUT
print(val,digits=num)
- 출력 자리수 지정 가능
cat('출력할 내용',변수,file='파일이름')
- 파일에 출력
list.files()
- 파일 목록 보기
read.fwf()
- 고정 자리수 데이터 파일 읽기
read.table()
- table 데이터 파일 읽기
read.csv()
- 웹에서 csv 읽어오기 가능
write.csv()
library(XML)
url<-"http://dataurl.html"
t<-readHTMLTable(url)
HTML에서 table 읽기
a <- 1:9
dim(a)<- c(3,3)
b <- 1:12
dim(b) <- c(2,3,2)
배수를 맞춰주지 않으면 경고가 발생하지만 실행은 된다.
재활용 규칙을 통한 연산
L[[n]]
- 원소선택을 위해서는 [] 두번 사용
data.frame(v1,v2,v3)
- dataframe 생성
rbind(df1,df2)
- df를 행으로 결합 ( 아래로 이어붙인다 )
cbind(df1,df2)
- df를 열로 결합 ( 옆으로 이어붙인다 )
df[df$gender=='m']
- 성별이 m인 데이터만 조회
subset(df,select=gender,subset=gender=='m')
- 위와 같음
subset(df,select=-gender)
- gender를 제외하고 선택
merge(df1,df2,by='gender')
- gender를 공통으로 하여 병합
na.omit(df)
- na가 존재하는 행 삭제
sapply(a,log)
- a변수에 log 함수 적용
lapply(l,func)
, sapply(a,func)
- list에 함수 적용
apply(mat,1,func)
, apply(mat,2,func)
- matrix에 함수 적용 / 1을 하면 transpose결과임
lapply, sapply
- df에 함수 적용
apply
- df에 적용시 데이터프레임이 모두 문자거나 모두 숫자일때만 가능
nchar("단어")
- 길이 반환
substr("abcdefg",1,4)
-> abcd
substring 추출