본문 바로가기

R

[R] 자료형 - 7.data frame

7. data frame

: 데이터베이스에 table과 유사하다. -행과 열로 구성되어 있다.

-서로 다른 데이터 타입을 갖는 2차원 테이블(배열) 구조이다

 

df <- data.frame(name=c('scott','harden','curry'),
                 sql=c(90,80,70),
                 r=c(80,70,90))

 

특정한 컬럼 확인

   df$sql df[1,1] <- 'james' : 값을 수정

 

인덱스

   df[1,] : 특정한 행추출

   df[,1] : 특정한 열추출

   df[,c('name','r')]

=> select name, r from df;

 

세로로 출력

   df[,'name',drop=F]

: drop=F를 설정하면 세로 방향 출력.(데이터 프레임)

 

   names(df) : 열이름 출력

   colnames(df) : 열이름 출력

   colnames(df) <- c('NAME','SQL','R') : 열이름 수정

 

   rownames(df) : 행이름 출력

   rownames(df) <- c('사원1','사원2','사원3') : 행이름 수정

   rownames(df) <- NULL : 행이름 삭제

 

위치 추출

   names(df) %in% c('SQL','R')

   colnames(df) %in% c('SQL','R')

   df[,'SQL']

   df[,c('SQL','PYTHON')]

 

   df[,names(df) %in% c('SQL','PYTHON','R')] : 특정한 열을 추출

   df[,!names(df) %in% c('SQL','PYTHON','R')] : 특정한 열을 제외해서 추출

   which(names(df) == c('SQL','PYTHON','R')) : ==은 결과가 한 개만 나옴

   which(names(df) == 'SQL')|which(names(df) =='PYTHON')|which(names(df) =='R')

   which(names(df) %in% c('SQL','PYTHON','R')) : %in%은 결과가 여러개 나옴

 

df$PYTHON <- c(90,70,60) : 새로운 컬럼을 추가

   length(df) : 컬럼의 수

   NROW(df) : 행의수

   nrow(df) : 행의수

 

df <- data.frame(x =1:100000)

   head(df,n=10) : 앞부분의 행 추출

   tail(df,n=10) : 뒷부분의 행 추출

 

factor levels 순서를 바꾸려면

  ① factor형을 vector형으로 변환 :

y <- as.vector(x)

  ② vector형을 factor형으로 변환 :

y <- factor(y,levels=c("매우좋음","보통","나쁨"),ordered=T)


[문제27] 아래와 같은 모양의 변수를 생성하세요. 변수 이름은 df로 하세요.

<화면출력>

  name sql plsql

1 king  96  75

2 smith 82  91

3 jane   78  86

더보기
df <- data.frame(name=c('king','smith','jane'),
                 sql=c(96,82,78),
                 r=c(75,91,86))

[문제28] df변수에 james, 90, 80 추가 해주세요.

<화면출력>

  name sql plsql

1 king  96  75

2 smith 82  91

3 jane   78 86

4 james 90 80

더보기
df[4,] <- c('james',90,80)
df[NROW(df)+1,] <- c('james',90,80)

[문제29] james에 대한 row 정보만 출력하세요.

<화면출력>

  name sql plsql

4 james 90 80

더보기
df[which(df$name == 'james'),]

[문제30] james 이름의 행을 삭제해주세요.

더보기
df[-which(df$name == 'james'),]

'R' 카테고리의 다른 글

[R] 문자함수  (0) 2022.01.12
[R] read.csv, 조건문, paste  (0) 2022.01.12
[R] 자료형 - 6.factor  (0) 2022.01.12
[R] 자료형 - 5.array  (0) 2022.01.12
[R] 자료형 - 4.matrix  (0) 2022.01.12
Recent Posts
Popular Posts
Recent Comments