Περισσότερα
Αφαίρεση γραμμών με όλες ή κάποιες NAs (ελλείπουσες τιμές) στο data.frame
Θα ήθελα να αφαιρέσω τις γραμμές σε αυτό το πλαίσιο δεδομένων που:
Παρακάτω είναι το πλαίσιο δεδομένων του παραδείγματός μου.
gene hsap mmul mmus rnor cfam
1 ENSG00000208234 0 NA NA NA NA
2 ENSG00000199674 0 2 2 2 2
3 ENSG00000221622 0 NA NA NA NA
4 ENSG00000207604 0 NA NA 1 2
5 ENSG00000207431 0 NA NA NA NA
6 ENSG00000221312 0 1 2 3 2
Βασικά, θα ήθελα να πάρω ένα πλαίσιο δεδομένων όπως το ακόλουθο.
gene hsap mmul mmus rnor cfam
2 ENSG00000199674 0 2 2 2 2
6 ENSG00000221312 0 1 2 3 2
β) περιέχει NA
s μόνο σε ορισμένες στήλες, ώστε να μπορώ να πάρω και αυτό το αποτέλεσμα:
gene hsap mmul mmus rnor cfam
2 ENSG00000199674 0 2 2 2 2
4 ENSG00000207604 0 NA NA 1 2
6 ENSG00000221312 0 1 2 3 2
785
3
Ελέγξτε επίσης
complete.cases
:Το
na.omit
είναι καλύτερο για την απλή αφαίρεση όλων τωνNA
's. Τοcomplete.cases
επιτρέπει τη μερική επιλογή συμπεριλαμβάνοντας μόνο ορισμένες στήλες του πλαισίου δεδομένων:Η λύση σας δεν μπορεί να λειτουργήσει. Αν επιμένετε να χρησιμοποιείτε το
is.na
, τότε πρέπει να κάνετε κάτι τέτοιο:αλλά η χρήση του
complete.cases
είναι αρκετά πιο ξεκάθαρη και πιο γρήγορη.Δοκιμάστε
na.omit(your.data.frame)
. Όσον αφορά τη δεύτερη ερώτηση, δοκιμάστε να τη δημοσιεύσετε ως άλλη ερώτηση (για λόγους σαφήνειας).Προτιμώ τον ακόλουθο τρόπο για να ελέγξω αν οι γραμμές περιέχουν NA: