Programming/R
[R기초] Data object : dataFrame 자료형
aram
2023. 7. 24. 17:37
dataFrame 데이터 프레임
- 행과 열로 이루어진 자료형
- 요소의 자료형이 달라도 됨
- matrix는 요소의 자료형이 동일해야 함
#생성 data.frame()
1. 벡터를 이용한 생성
no <- c(1,2,3,4)
name <- c('Apple','Peach','Banana','Grape')
price = c(500,1000,500,2000)
qty <- c(5,2,6,1)
sales <- data.frame(NO=no, NAME=name, Price=price, QTY=qty)
sales
# NO NAME Price QTY
# 1 1 Apple 500 5
# 2 2 Peach 1000 2
# 3 3 Banana 500 6
# 4 4 Grape 2000 1
2. matrix를 활용한 생성
m1 <- matrix(x, nrow=4, byrow=T)
m1
# [,1] [,2] [,3] [,4]
# [1,] "1" "Apple" "500" "5"
# [2,] "2" "Peach" "1000" "2"
# [3,] "3" "Banana" "500" "6"
# [4,] "4" "Grape" "2000" "1"
sales2 = data.frame(m1)
sales2
# X1 X2 X3 X4
# 1 1 Apple 500 5
# 2 2 Peach 1000 2
# 3 3 Banana 500 6
# 4 4 Grape 2000 1
#컬럼명 조회&변경 열 names() | colnames() / 행 row.names() | rownames()
#조회
names(sales2) #"X1" "X2" "X3" "X4" : 열
row.names(sales2) #"1" "2" "3" "4" : 행
#수정
names(sales2) = c('NO', "NAME", 'Price', 'QTY') #"NO" "NAME" "Price" "QTY" : 열
row.names(sales2) <- c('A','B','C','D') #"A" "B" "C" "D" : 행
#조건 subset()
: 조건으로 검색
subset(sales2, Price==2000)
# NO NAME Price QTY
#D 4 Grape 2000 1
: 조건식으로 출력
L = list(ID=c(1,2,3,4)
, name=c('Kim','Lee','Park','E')
, score=c(80,95,75, 20))
L <- data.frame(L)
L$score[L$name=="Park"] #75
#df concat 행 rbind() / 열 cbind()
df1 df2
# no name price # no name price
# 1 1 apple 100 # 1 10 train 1000
# 2 2 banana 200 # 2 20 car 2000
# 3 3 peach 300 # 3 30 airplain 3000
df3 <- rbind(df1, df2) #아래로 합치기
# no name price
# 1 1 apple 100
# 2 2 banana 200
# 3 3 peach 300
# 4 10 train 1000
# 5 20 car 2000
# 6 30 airplain 3000
df4 <- cbind(df1, df2) #옆으로 합치기
# no name price no name price
# 1 1 apple 100 10 train 1000
# 2 2 banana 200 20 car 2000
# 3 3 peach 300 30 airplain 3000
#행열의 개수 구하기 행 nrow() / 열 ncol()
length(df4) #6
ncol(df4) #6
nrow(df4) #3
* 내용참고&출처 : 태그의 수업을 복습 목적으로 정리한 내용입니다.
728x90