2014-04-13 10 views
6

Dostaję następujący błąd:Problem z complete.cases

Error in complete.cases(dt) : invalid 'type' (list) of argument 

Nigdy nie miałem tę wiadomość przed przy użyciu complete.cases na ramie danych.

Połączenie z class(dt) zwraca data.frame, więc nie ma problemu.

dt jest stosunkowo duży - 800 000 z 90 zmiennych.

Podobne operacje na innych ramkach danych nie stanowią problemu.

Ktoś wie, co może być przyczyną problemu?

+2

Proszę przeczytać [jak zrobić świetny powtarzalny przykład] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – hrbrmstr

+3

Spróbuj również zrobić ' str (dt) '. Jeśli jedna z twoich kolumn zawiera obiekty 'list',' complete.cases' nie będzie działać. – hrbrmstr

+0

@hrbrmstr proszę dodać ten komentarz jako odpowiedź. Natknąłem się na ten sam problem, a jak zauważyłeś, miałem obiekty list w data.frame. – zx8754

Odpowiedz

5

Napotkałem również ten sam problem. Jak słusznie zauważył @hrbrmstr, data.frame ma obiekty listy. W moim przypadku była to data.frame list.
konwertowane z data.frame list do rzeczywistego ramki danych, stosując następujące polecenia:

DF <- data.frame(matrix(unlist(DF), nrow=nrow(DF)),stringsAsFactors=FALSE) 

Korzystanie complete.cases na to udało się.