행위

R 데이터프레임 DATAFRAME

DB CAFE

thumb_up 추천메뉴 바로가기


1 R 데이터프레임(DataFrame)[편집]

1.1 데이터프레임(DataFrame) 생성[편집]

  1. 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) 변수 추가[편집]

  1. dataframe$변수
df$Name <- c("김","박","최","허")
df
  1. transform(dataframe,variable = ) 함수
df <- transform(df,Age = c(10,20,30))
df

1.3 데이터프레임(DataFrame) 결합[편집]

  1. 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)와 마찬가지로 열의 개수가 같아야 오류 발생 안함.
  1. 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를 구하는 방법
  1. person[ ,2]
  2. person2
  3. 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() 함수[편집]

  1. 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( )] 함수[편집]

  1. dataframe[which(조건, 변수선택)]
X <- store.df[which(store.rev > 400),c('store.num','store.rev','store.visits','store.manager')]
X
  • 매장수입이 400 이상인 번호, 수입, 방문자수, 매니저 변수 출력

1.6.2 subset() 함수[편집]

  1. subset(dataframe, select = 변수선택, subset = 조건)
Y = subset(store.df,select = c('store.num','store.rev','store.visits'),subset=(store.visits > 40))
Y
  • 방문자수가 40이 넘는 번호, 방문자수 변수 출력

1.7 데이터프레임 정렬[편집]

1.7.1 order() 함수[편집]

# 순서 정렬 
order(store.rev)

# 절대값으로 정렬 
store.rev[order(store.rev)]

1.7.2 arrange() 함수[편집]

  1. arrange() 함수는 plyr 패키지에 포함
  2. arrange(dataframe, 기준변수)
library(plyr)
arrange(store.df,store.rev)

1.7.3 desc() 함수[편집]

  1. 역순 정렬