자격증/ADSP

데이터 분석 준전문가(adsp) - 데이터 구조와 데이터 프레임 - 2

IT grow. 2020. 1. 28. 17:26
반응형

1. 데이터 프레임

 

- 데이터에서 각각의 변수에 해당하는 열들의 모임으로 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(dfrm1,dfrm2)

newdata <- rbind(newdata, new)

 

--> 두 데이터프레임을 행으로 결합 

 

 


데이터셋 열결합 

 

:

cbind(dfrm1,dfrm2)

cbind(newdata,newcol) #newcol=1:150

 

--> 두 데이터프레임을 열로 결합 

 


 

 

데이터 프레임 할당 

 

N = 1,000,000

dtfm <- data.frame(dosage=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은 벡터와 리스트에서도 선택 가능

 


데이터 선택

 

lst1[[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 = 열이름 , 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 ) 

 


 

2. 자료형 데이터 구조 변환 

 

데이터 프레임의 내용에 쉽게 접근하기 

 

with ( dfm, expr ) 

attach ( dfm ) 

detach ( dfm ) 

 

자료형 변환하기 

 

as.character()

as.complex()

as.numeric() or as.double()

as.integer()

as.logical() 

 

데이터 구조 변환하기 

 

as.data.frame()

as.list()

as.matrix()

as.vector()

 

 

3. 데이터 구조 변경 

 

벡터 --> 리스트 

 

as.list(vec) 


벡터 --> 행렬 

 

1열짜리 행렬 : cbind(vec) or as.matrix(vec) 

1행짜리 행렬 : rbind(vec) 

n x m 행렬 : matrix(vec,n,m)


벡터 --> 데이터 프레임 

 

1열짜리 데이터프레임 : as.data.frame(vec) 

1행짜리 데이터프레임 : as.data.frame(rbind(vec))


리스트 --> 벡터 

 

unlist(lst) 


리스트 --> 행렬 

 

1열짜리 행렬 : as.matrix(lst) 

1행짜리 행렬 : as.matrix(rbind(lst))

n x m 행렬 : matrix(lst,n,m) 


리스트 --> 데이터 프레임 

 

목록 원소들이 데이터의 열이면 : as.data.frame(lst) 

리스트 원소들이 데이터의 행이면 : rbind(obs[[1]] , obs[[2]]) 


행렬 

 

as.vector(mat)


행렬 --> 리스트 

 

as.list(mat) 


행렬 --> 데이터 프레임 

 

as.data.frame(mat)


데이터 프레임 --> 벡터 

 

1열짜리 데이터 프레임 : dfm[[1]] or dfm[,1]

1행짜리 데이터 프레임 : dfm[1,] 


데이터 프레임 --> 리스트 

 

as.list(dfm)

 


데이터 프레임 --> 행렬 

 

as.matrix(dfm) 

 

 

 

반응형