-
R 기초 7 - DataFrameR 2022. 10. 23. 16:24
# DataFrame : 2차원 구조 - 열 단위로 같은 타입의 자료를 기억 # 생성방법1 : vector를 이용 data.frame no <- c(1,2,3) name <- c('hong', 'lee', 'kim') pay <- c(330, 450, 500) df <- data.frame(bungo=no, irum=name, imkum=pay) # DataFrame을 만들어주는 함수 # key=value 값으로 행의 이름을 정해줄 수 있다. df <console> df bungo irum imkum 1 1 hong 330 2 2 lee 450 3 3 kim 500
data.frame함수를 사용하면 표로 만들어준다.
key=value 값으로 행의 이름을 정해줄 수 있다.
DataFrame 생성방법1
# DataFrame : 2차원 구조 - 열 단위로 같은 타입의 자료를 기억 # 생성방법1 : vector를 이용 data.frame no <- c(1,2,3) name <- c('hong', 'lee', 'kim') pay <- c(330, 450, 500) df <- data.frame(bungo=no, irum=name, imkum=pay) # DataFrame을 만들어주는 함수 # key=value 값으로 행의 이름을 정해줄 수 있다. df class(df) mode(df) # list is(df) df$irum # irum만 호출 df <- data.frame(irum=c('james','oscar','tom'), nai=c(22,25,27), row.names = c('one', 'two', 'three')) df nrow(df) # 열 갯수 ncol(df) # 행 갯수 str(df) # 문자열로 호출 summary(df) # 구조를 호출 head(df, n=2) # 앞에거 2개 호출 tail(df, n=2) # 뒤에거 2개 호출 rownames(df) # 열의 이름 호출 colnames(df) # 행의 이름 호출
DataFrame 생성방법2
# 생성방법2 : matrix를 이용 data.frame m <- base::matrix(c(1, 'hong', 150, 2, 'lee', 250, 3, 'kim', 350), 3, by=T) m mdf <- data.frame(m) # 표로 호출 mdf m <- matrix(1:6, nrow = 3) mdf <- data.frame(m) # 표로 호출 mdf colnames(mdf) <- c("c1", "c2") # 행의 이름을 변경 mdf mdf$c1 # 1열호출(나열) mdf['c1'] # 1열 출(표 형식) mdf[1] # 1열호출(표 형식) mdf[-1] # 맨 마지막열열호출 mdf[1,2] # 1행 2열 호출 mdf[, 2] # 2열 호출 mdf[1,] # 1행 호출 mdf[1:2,1:2] mdf[2:3,c(1,2)] mdf[2:3,c('c1','c2')] # 조건 지정해 행 출력 mdf[mdf$c1 == 2,] # 2행 호출 subset(mdf, c1 == 2) # 2행 호출 ?subset mdf[mdf$c1 == 2 & mdf$c2 == 5,] subset(mdf, c1 ==2 & c2 == 5) mdf[mdf$c1 == 2, c(1, 2)] subset(mdf, c1 == 2, select = c(2)) subset(mdf, c1 == 2, select = c(1, 2)) mdf$c2 <- ifelse(mdf$c2== 4, NA, mdf$c2) # 3항연산자랑 비슷하다. # 조건, 참일때, 거짓일때 순이다. mdf summary(mdf) mean(mdf$c1) # 평균 값 구하기 mean(mdf$c2) # NA값이 들어있으므로 평균값을 못 구함 mean(mdf$c2, na.rm = T) # NA(결측) 값을 제외하고 연산 # 행 또는 열 추가 mdfr <- rbind(mdf, c(10, 11)) # 행 추가 mdfr mdfc <- cbind(mdf, c3=c('a','b','c'), c4= c('a1','a2','a3')) # 열추가 mdfc # 열 삭제 mdfc[, 'c1'] <- NULL # c1열에게 NULL을 주면 삭제된다. mdfc # 행 삭제 mdfr <- mdfr[-1,] mdfr
DataFrame 생성방법3
# 생성방법3 : 파일을 이용하여 data.frame 생성 getwd() txtdf <- read.table('testdata/emp.txt', header = T) txtdf is(txtdf) csvdf <- read.csv('testdata/emp.csv') csvdf csvdf$이름 sum(csvdf$급여) # 모든 급여 합 mean(csvdf$급여) # 급여 평균 구하기 sd(csvdf$급여) # 표준편차 구하기기
DataFrame을 스크립트 파일로 저장(rdata)하는 법
# DataFrame을 스크립트 파일로 저장(rdata) df <- data.frame(eng=c(90, 80, 70), mat=c(55, 67, 90), class=c(1,2,3)) df write.csv(df, file = 'output/mydf.csv') # ?write.csv save(df, file = 'output/mydf.rda') # R의 형식으로 저장됨 rm(df) # 삭제 df load('output/mydf.rda') # 읽어오기(out에서) df
'R' 카테고리의 다른 글
R 기초 9 - 연산자, if 조건문 (0) 2022.10.24 R 기초 8 - 객체 file i/o 저장 (0) 2022.10.24 R 기초 6 - Array, List (0) 2022.10.23 R 기초 5 - Matrix(2차원 배열) (0) 2022.10.23 R 기초 4 - Vector(1차원 배열) (0) 2022.10.23