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.
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.
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