본문 바로가기
AI 관련/ADsP, ADP

R 기초 함수와 문법 - 3

by 팀장일기 2021. 4. 24.

■데이터 변형 _ 주요 코드 

기능 R코드 비고
요인으로 집단 정의 v<-c(24,23,52,46,75,25)
w<-c(87,86,92,84,77,68)
f<-factor(c("A","A","B","B","C","A"))
 
벡터를 여러집단으로 분할
(벡터의 길이만 같으면 됨)
groups<-split(v,f)
groups<-split(w,f)
groups<0unstack(data.frame(v,f))
두 함수 모두 벡터로 된 리스트를 반환
데이터 프레임을여러집단으로 분할 MASS 패키지, Cars92데이터 셋 활용
library(MASS)
sp<-split(Cars93$MPG.city,Cars93$Origin)
median(sp[[1]]
 
리스트의 각 원소에 함수 적용 lapply(결과를 리스트 형태로 반환)
list<-lapply(l,func)
sapply(결과를 벡터 또는 행렬로 반환)
vec<-sapply(l,func)
 
행렬에 함수 적용 m<-apply(mat,1,func)
m<-apply(mat,2,func)
 
데이터프레임에 함수적용 dfm<-lapply(dfm,func)
dfm<-sapply(dfm,func)
dfm<-apply(dfm,func): 데이터 프레임이 동질적인 경우만(모두 문자, 숫자)활용가능, 데이터프레임을행렬로 변환 후 함수 적용.
 
대용량데이터의 함수적용 <sapply를 통한 간단한 R코딩>
cors<-sapply(dfm,cor,y=targetVariabele)
mask<-(rank(-abs(cors))<=10)
best.pred<-dfm[,mask]
lm(targetVariabele~bes.pred)
많은 변수가 있는 데이터에서의 다중회구분석
1. 데이터 프레임에서 타겟 변수를 정한다. 
2. 타겟변수와 상관계수를 구한다.
3. 상관계수가 높은 상위 10개의 변수를 입력변수로 선정
4. 타겟변수와 입력변수로 다중회귀분석을 실시한다. 
집단별 함수 적용 tapply(vec,factor,func) 데이터가 집단(factors)에 속해 있을때 합계/ 평균구하기 
행집단 함수 적용 by(drm,factor,func)
요인별 선형회귀선구하기 
model(dfm,factor,function(df)lm(종속변수~독립변수1+독립변수2+⋯+독립변수k,data=df)) 
 
병렬 벡터, 리스트들 함수 적용 mapply(factor,vec1,vec2,vec3,⋯,vec k)
mapply(factor,list1,list2,list3,⋯,list k)
 

 

 

■데이터 변형 _ 문자열 날짜 다루기 

기능 R코드 비고
문자열 길이 nchar("단어") 단어나 문장 또는 벡터내 원소의 문자열 길이를 반환
[주의] length(vec)문자열의 길이가 아닌 벡터의 길이를 반환
문자열 연결 paste("단어1","단어2",sep="-")
paste("the pi is approximately",pi)
paste(vec,"loves me",collapse=",and")
 
하위문자열 추출 substr("statistics",1,4) 문자열의 1첫째에서 4자리까지 추출
구분자로 문자열 추출 strsplit(문자열, 구분자)  
하위 문자열 대체 sub(old,new,string)
gsub(old,new,string)
 
쌍별조합 mat<-outer(문자열1,문자열2,paste,sep="")  
날짜 변환1 Sys.Date()
as.Date()
현재 날짜를 반환 
날짜 객체로 반환
날짜 변환2 format(Sys.date(),format=%m/%d/%y)  
날짜 조회 format(Sys.Date(),'%a')
format(Sys.Date(),'%b')
format(Sys.Date(),'%B')
format(Sys.Date(),'%d')
format(Sys.Date(),'%m')
format(Sys.Date(),'%y')
format(Sys.Date(),'%Y')
요일조회
축약된 월이름 조회
전체 월이름 조회
두자리 숫자의 일 조회
두자리 숫자의 월 조회
두자리 숫자의연도 조회
네자리 숫자의 연도조회
날짜 일부 추출 d<-as.Date("2014-12-25")
p<-as.POSIXlt(d)
p$yday
start<-as.Date("2014-12-01")
end<-as.Date(2014-12-25")
seq(from=start.to=end,by=1)
 

 

이 글과 함께 읽으면 좋은글 

R기초함수와 문법-1

 

R 기초 함수와 문법 - 1

■ 기초 기능 R코드 비고 출력하기 print() : 출력형식을 지정할 필요없음. 한번에 하나의 객체만 출력 cat() : 여러 항목을 묶어서 연결된 결과로 출력, 복합적 데이터 구조 (행렬, list 등) 를 출력 할

chinggu2000.tistory.com

 

R기초함수와 문법-2

 

R 기초 함수와 문법 - 2

■ 벡터, 리스트, 행렬 다루기 기능 R코드 비고 벡터에 데이터 추가 v v[length(v)+1] 벡터에 데이터 삽입 append(vec,newvalues,after=n) 요인 생성 f f 여러 벡터를 합쳐 하나의 벡터와 요인으로 만들기 comb 벡

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 기초 함수와 문법 - 2  (0) 2021.04.24
R 기초 함수와 문법 - 1  (0) 2021.04.24

댓글