2016-07-23 19 views
8

Làm cách nào để biết liệu dữ liệu của tôi trong R có phải là danh sách hoặc dữ liệu hay không?Làm thế nào để biết dữ liệu có phải là danh sách hoặc data.frame trong R

Nếu tôi sử dụng typeof(x), danh sách sẽ hiển thị nếu tôi sử dụng class(x) thì dữ liệu đó có phải là data.frame không?

+0

'data.frame' là một loại đặc biệt của 'list'. Đọc [this] (http://stackoverflow.com/questions/6258004/r-types-and-classes-of-variables) và [this] (http://stackoverflow.com/documentation/r/438/data- frames/1458/create-an-empty-data-frame # t = 201607230816043614997). – Sumedh

+0

R có các hàm 'is.list' và' is.data.frame' để kiểm tra xem một đối tượng là một danh sách hay một data.frame. –

+0

@Narendra - bạn đã thử 'is.list (data.frame())' – SymbolixAU

Trả lời

6

Để làm rõ sự hiểu lầm có thể xảy ra với tiêu đề câu hỏi của bạn, data.frame cũng là một danh sách.

is.list(data.frame()) # TRUE 

Tuy nhiên, bạn có thể sử dụng inherits() để xem nếu một đối tượng là một list hoặc data.frame

inherits(data.frame(), "data.frame") # TRUE 
inherits(list(), "data.frame")  # FALSE 

inherits(data.frame(), "list")  # FALSE 
inherits(list(), "list")    # TRUE 
+0

Rất cám ơn, tiếc là tôi nhận được: > kế thừa (danh sách (website_data_frame), "danh sách") [1] TRUE kế thừa (dữ liệu .frame (website_data_frame), "data.frame") [1] TRUE vì vậy về cơ bản cả hai đều đúng? – carlosmaria

+1

Bạn đang kiểm tra xem một danh sách 'có kế thừa' danh sách' hay không, và nếu 'data.frame' thừa hưởng' data.frame', rõ ràng là cả hai sẽ và trả về 'TRUE' – Sumedh

+0

@Sumedh - được phát hiện tốt! – SymbolixAU

Các vấn đề liên quan