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)
'자격증 > ADSP' 카테고리의 다른 글
데이터 분석 준전문가(adsp) - 데이터 마트 (0) | 2020.01.30 |
---|---|
데이터 분석 준전문가(adsp) - 데이터 변형 (0) | 2020.01.30 |
데이터 분석 준전문가(adsp) - 데이터 구조와 데이터 프레임 - 1 (0) | 2020.01.27 |
데이터 분석 준전문가(adsp) - 입력과 출력 (0) | 2020.01.23 |
데이터 분석 준전문가(adsp) - R 기초 - 2 (0) | 2020.01.22 |
#IT #먹방 #전자기기 #일상
#개발 #일상