Từ các câu trả lời khác trên trang web này về các câu hỏi tương tự và ví dụ: từ các trang như http://www.r-tutor.com/r-introduction/data-frame/data-frame-column-vector, có vẻ như tôi trích xuất biến số từ một số data.frame
, data[ , "col"]
và data$col
sẽ mang lại kết quả tương tự. Nhưng bây giờ tôi có một số dữ liệu trong Excel:
LU Urban_LU LU_Index Urban_LU_index
Residential Residential 2 0
Rural residential Residential 3 0
Commercial Commercial 4 1
Public institutions including education Industrial 5 1
Industry Industrial 7 2
)
và tôi đọc nó với read_excel
từ readxl
gói:
library(readxl)
data <- read_excel("data.xlsx", "Sheet 1")
Bây giờ tôi trích xuất một biến duy nhất từ các khung dữ liệu, sử dụng [
hoặc $
:
data[ , "LU"]
# Source: local data frame [5 x 1]
#
# LU
# (chr)
# 1 Residential
# 2 Rural residential
# 3 Commercial
# 4 Public institutions including education
# 5 Industry
data$LU
# [1] "Residential" "Rural residential"
# [3] "Commercial" "Public institutions including education"
# [5] "Industry"
length(data[ , "LU"])
# [1] 1
length(data$LU)
# [1] 5
class(data)
# [1] "tbl_df" "tbl" "data.frame"
class(data[ , "LU"])
# [1] "tbl_df" "data.frame"
class(data$LU)
# [1] "character"
>
Vì vậy, sự khác biệt giữa [ , "col"]
và $col
là những gì:
Ngoài ra, những gì tôi thấy nghi ngờ các lớp học của các dữ liệu thu được từ read_excel
và các dữ liệu mà kết quả từ hai chế độ khác nhau của khai thác là? Tôi có thiếu thứ gì đó từ sách hướng dẫn hoặc đây có phải là trường hợp đặc biệt không? Ngoài ra, những gì có số nhận dạng lớp học tbl_df
và tbl
? Tôi nghi ngờ rằng họ là nguyên nhân của sự nhầm lẫn của tôi, họ có ý nghĩa gì?
Vâng, đây là trường hợp đặc biệt. Bạn đã bước vào thế giới của Hadley. Nếu bạn làm 'dữ liệu <- as.data.frame (dữ liệu)' bạn nên làm tốt khi thực hiện 'dữ liệu [," LU "]'. Đó là do sử dụng 'readxl' mà bạn cần làm điều này. –
'dữ liệu' không phải là dữ liệu" thực ". –
Quyền - thực sự làm cho nó hoạt động. Đối với ngắn gọn tôi rời khỏi câu hỏi ban đầu của tôi rằng tôi đã tìm thấy nó nghi ngờ rằng các tài liệu readxl không rõ ràng tài liệu kiểu trả về. Vì vậy, có một nơi nào đó mà tôi có thể đọc về những gì đang xảy ra ở đó? – Roel