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 |