Khung dữ liệu R: Cách tạo, nối thêm, chọn và tập hợp con

Khung dữ liệu là gì?

A khung dữ liệu là danh sách các vectơ có độ dài bằng nhau. Ma trận chỉ chứa một loại dữ liệu, trong khi khung dữ liệu chấp nhận các loại dữ liệu khác nhau (số, ký tự, hệ số, v.v.).

Cách tạo khung dữ liệu

Chúng ta có thể tạo một khung dữ liệu trong R bằng cách chuyển biến a,b,c,d vào hàm data.frame(). Chúng ta có thể R tạo khung dữ liệu và đặt tên cho các cột bằng name() và chỉ cần chỉ định tên của các biến.

data.frame(df, stringsAsFactors = TRUE)

Lập luận:

  • df: Có thể là ma trận để chuyển đổi dưới dạng khung dữ liệu hoặc tập hợp các biến để nối
  • stringsAsFactors: Chuyển đổi chuỗi thành hệ số theo mặc định

Chúng ta có thể tạo khung dữ liệu trong R cho tập dữ liệu đầu tiên của mình bằng cách kết hợp bốn biến có cùng độ dài.

# Create a, b, c, d variables
a <- c(10,20,30,40)
b <- c('book', 'pen', 'textbook', 'pencil_case')
c <- c(TRUE,FALSE,TRUE,FALSE)
d <- c(2.5, 8, 10, 7)
# Join the variables to create a data frame
df <- data.frame(a,b,c,d)
df

Đầu ra:

##     a         b     c     d
## 1  10        book  TRUE   2.5
## 2  20         pen  FALSE  8.0
## 3  30    textbook  TRUE   10.0
## 4  40 pencil_case  FALSE  7.0

Chúng ta có thể thấy các tiêu đề cột có cùng tên với các biến. Chúng ta có thể thay đổi tên cột trong R bằng tên hàm(). Kiểm tra ví dụ R tạo khung dữ liệu bên dưới:

# Name the data frame
names(df) <- c('ID', 'items', 'store', 'price')
df

Đầu ra:

##   ID       items store price
## 1 10        book  TRUE   2.5
## 2 20         pen FALSE   8.0
## 3 30    textbook  TRUE  10.0
## 4 40 pencil_case FALSE   7.0
# Print the structure
str(df)

Đầu ra:

## 'data.frame':    4 obs. of  4 variables:
##  $ ID   : num  10 20 30 40
##  $ items: Factor w/ 4 levels "book","pen","pencil_case",..: 1 2 4 3
##  $ store: logi  TRUE FALSE TRUE FALSE
##  $ price: num  2.5 8 10 7

Theo mặc định, khung dữ liệu trả về các biến chuỗi làm hệ số.

Khung dữ liệu lát

Có thể SLICE giá trị của Khung dữ liệu. Chúng ta chọn các hàng và cột để đưa vào ngoặc trước tên của khung dữ liệu.

Khung dữ liệu bao gồm các hàng và cột, df[A, B]. A đại diện cho các hàng và B đại diện cho các cột. Chúng ta có thể cắt bằng cách chỉ định các hàng và/hoặc cột.

Từ hình 1, phần bên trái đại diện cho hàng, và phần bên phải là cột. Lưu ý rằng ký hiệu : có nghĩa là đến. Ví dụ: 1:3 có ý định chọn các giá trị từ 1 đến 3.

Khung dữ liệu lát

Trong sơ đồ bên dưới, chúng tôi hiển thị cách truy cập các lựa chọn khung dữ liệu khác nhau:

  • Mũi tên màu vàng chọn hàng 1 trong cột 2
  • Mũi tên xanh chọn hàng 1 để 2
  • Mũi tên màu đỏ chọn cột 1
  • Mũi tên màu xanh chọn hàng 1 đến 3 và cột 3 để 4

Lưu ý rằng, nếu chúng ta để trống phần bên trái thì R sẽ chọn tất cả các hàng. Tương tự, nếu chúng ta để trống phần bên phải, R sẽ chọn tất cả các cột.

Khung dữ liệu lát

Chúng ta có thể chạy mã trong bảng điều khiển:

## Select row 1 in column 2
df[1,2]

Đầu ra:

## [1] book
## Levels: book pen pencil_case textbook
## Select Rows 1 to 2
df[1:2,]

Đầu ra:

##   ID items store price
## 1 10  book  TRUE   2.5
## 2 20   pen FALSE   8.0
## Select Columns 1
df[,1]

Đầu ra:

## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4
df[1:3, 3:4]

Đầu ra:

##   store price
## 1  TRUE   2.5
## 2 FALSE   8.0
## 3  TRUE  10.0

Cũng có thể chọn các cột có tên của chúng. Ví dụ: đoạn mã bên dưới trích xuất hai cột: ID và store.

# Slice with columns name
df[, c('ID', 'store')]

Đầu ra:

##   ID store
## 1 10  TRUE
## 2 20 FALSE
## 3 30  TRUE
## 4 40 FALSE

Nối một cột vào khung dữ liệu

Bạn cũng có thể nối thêm một cột vào Khung dữ liệu. Bạn cần sử dụng ký hiệu $ để nối biến R của khung dữ liệu và thêm một cột vào khung dữ liệu trong R.

# Create a new vector
quantity <- c(10, 35, 40, 5)

# Add `quantity` to the `df` data frame
df$quantity <- quantity
df

Đầu ra:

##   ID       items store price quantity
## 1 10        book  TRUE   2.5       10
## 2 20         pen FALSE   8.0       35
## 3 30    textbook  TRUE  10.0       40
## 4 40 pencil_case FALSE   7.0        5

Lưu ý: Số lượng phần tử trong vector phải bằng số phần tử trong khung dữ liệu. Thực hiện câu lệnh sau để thêm cột vào khung dữ liệu R

quantity <- c(10, 35, 40)
# Add `quantity` to the `df` data frame
df$quantity <- quantity

Đưa ra lỗi:

Error in `

lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40))
 replacement has 3 rows, data has 4

Chọn một cột của khung dữ liệu

Đôi khi, chúng ta cần lưu trữ một cột của khung dữ liệu để sử dụng sau này hoặc thực hiện thao tác trên một cột. Chúng ta có thể sử dụng dấu $ để chọn cột từ khung dữ liệu.

# Select the column ID
df$ID

Đầu ra:

## [1] 1 2 3 4

Đặt một khung dữ liệu

Ở phần trước chúng ta đã chọn toàn bộ một cột không có điều kiện. Nó có thể tập hợp con dựa trên việc một điều kiện nhất định có đúng hay không.

Chúng tôi sử dụng hàm subset().

subset(x, condition)
arguments:
- x: data frame used to perform the subset
- condition: define the conditional statement

Chúng tôi chỉ muốn trả lại những mặt hàng có giá trên 10, chúng tôi có thể thực hiện:

# Select price above 5
subset(df, subset = price > 5)

Đầu ra:

ID       items store price
2 20         pen FALSE     8
3 30    textbook  TRUE    10
4 40 pencil_case FALSE     7