2016-07-23 14 views
8

Skąd wiadomo, czy moje dane w R są listą czy data.frame?Jak sprawdzić, czy dane są listą lub ramką danych.Rame w R

Jeśli używam typeof(x), to znaczy, że jeśli używam class(x), to jest data.frame?

+0

'data.frame' jest szczególnym rodzajem' list'. Przeczytaj [to] (http://stackoverflow.com/questions/6258004/r-types-and-classes-of-variables) i [this] (http://stackoverflow.com/documentation/r/438/data- frames/1458/create-an-empty-data-frame # t = 201607230816043614997). – Sumedh

+0

R ma funkcje 'is.list' i' is.data.frame' w celu sprawdzenia, czy obiekt jest listą lub data.frame. –

+0

@Narendra - czy próbowałeś 'is.list (data.frame())' – SymbolixAU

Odpowiedz

6

Aby wyjaśnić ewentualne nieporozumienie z tytułem pytania, data.frame jest również listą.

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

Jednakże, można użyć inherits() aby sprawdzić, czy obiekt jest list lub data.frame

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

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

Wielkie dzięki, niestety uzyskać: > dziedziczy (lista (website_data_frame), "Lista") [1] TRUE inherits (dane .frame (website_data_frame), "data.frame") [1] TRUE tak w zasadzie oba są prawdziwe? – carlosmaria

+1

Sprawdzasz, czy 'lista' dziedziczy' listę', a jeśli 'data.frame' dziedziczy' data.frame', to oczywiście oba będą i powinny zwracać 'TRUE' – Sumedh

+0

@Sumedh - dobrze zauważony! – SymbolixAU