R 데이터프레임 DATAFRAME
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 R 데이터프레임(DataFrame)[편집]
1.1 데이터프레임(DataFrame) 생성[편집]
- data.frame( ) 함수 사용
xNum <- c(1,2,3)
xLog <- c(TRUE,FALSE)
xChar <- c("a","b","c","d")
df <- data.frame(xNum,xLog,xChar)
df
str(df)
- str( ) 함수로 데이터프레임의 구조 확인 xChar 변수는 Factor(범주형)
- 즉 data.frame( ) 함수 사용시, 문자형은 자동으로 Factor로 인식 함
- data.frame( , stringsAsFactors = FALSE)을 넣음으로써 문자형을 Factor가 아닌 Character로 입력 가능,stringsAsFactors = F 로도 가능
1.2 데이터프레임(DataFrame) 변수 추가[편집]
- dataframe$변수
df$Name <- c("김","박","최","허")
df
- transform(dataframe,variable = ) 함수
df <- transform(df,Age = c(10,20,30))
df
1.3 데이터프레임(DataFrame) 결합[편집]
- rbind( ), cbind( ) 함수
name <- c("A","B")
height <- c("170","180")
df1 <- data.frame(name,height)
name <- c("C","D")
height <- c("140","150")
df2 <- data.frame(name,height)
df3 <- rbind(df1,df2)
df3
# 데이터 프레임 직접 기술
df4 <- df1 <- data.frame(weight = c("50","60","70","80",
score = c("98","97","80","72"))
df4
# dataframe 결합
df5 <- cbind(df3,df4)
df5
- 행렬(Matrix)와 마찬가지로 열의 개수가 같아야 오류 발생 안함.
- merge() 함수
name <- c("C","D","E","A","B")
height <- c("111", "222" "333" "170","180")
df6 <- data.frame(name,height)
df6
cbind(df5,df6)
- cbind() 는 row 갯수가 달라서 오류 발생 됨.
- merge*(dataframe,dataframe,key = ) 으로 처리 해야함
person <- merge(df5,df6,key = "name")
person
1.4 데이터프레임(DataFrame) 인덱싱[편집]
person[,2]
person[[2]]
person[,-1]
person[1:2,]
person[person$height>11,]
- 데이터프레임 person의 변수 height를 구하는 방법
- person[ ,2]
- person2
- person$height
- person[ ,-1]: person에서 1번째 행을 제외한 전체 구성요소 - person[1:2, ]: person에서 1번째부터 2번째 행에 있는 구성요소 - person[person$height > 11, ]: person에서 person$height가 11보다 큰 행에 있는 구성요소
1.5 데이터프레임 변수명 변경[편집]
1.5.1 names() 함수[편집]
store.num <- factor(c(11,22,33,44,55))
store.rev <- c(111,222,333,444,555)
store.visits <- c(45,46,27,27,33)
store.manager <- c("kim","park","lee","kkk","choi")
store.df <- data.frame(store.num,store.rev,store.visits,store.manager,stringAsFactor = F)
store.df
- 변수명 변경
names(store.df ) <- c('V1','V2','V3','V4')
store.df
1.5.2 rename() 함수[편집]
- rename() 함수는 reshape 패키지 해야함 , install.packages("reshape")
library(reshape)
store.df <- rename(store.df,c(V1="store.num",V2="store.rev",V3="store.visits",V4="store.manager"))
store.df
1.6 데이터프레임 변수 선택[편집]
1.6.1 특정 변수시 , index[which( )] 함수[편집]
- dataframe[which(조건, 변수선택)]
X <- store.df[which(store.rev > 400),c('store.num','store.rev','store.visits','store.manager')]
X
- 매장수입이 400 이상인 번호, 수입, 방문자수, 매니저 변수 출력
1.6.2 subset() 함수[편집]
- subset(dataframe, select = 변수선택, subset = 조건)
Y = subset(store.df,select = c('store.num','store.rev','store.visits'),subset=(store.visits > 40))
Y
- 방문자수가 40이 넘는 번호, 방문자수 변수 출력