Duplicata possible:
R - supprimer les lignes contenant des NA dans data.frame
J'ai un dataframe nommé sub.new avec plusieurs colonnes dedans. Et j'essaie d'exclure toute cellule contenant NA
ou un blank space
"".
J'ai essayé d'utiliser subset()
, mais il cible une colonne spécifique conditionnelle. Existe-t-il de toute façon une analyse de l'ensemble de la trame de données et la création d'un sous-ensemble qu'aucune cellule n'est NA
ou blank space
?
Dans l'exemple ci-dessous, seule la première ligne doit être conservée:
# ID SNP ILMN_Strand Customer_Strand
ID1234 [A/G] TOP BOT
Non-Specific NSB (Bgnd) Green
Non-Polymorphic NP (A) Red
Non-Polymorphic NP (T) Purple
Non-Polymorphic NP (C) Green
Non-Polymorphic NP (G) Blue
Restoration Restore Green
Aucune suggestion? Merci
Une bonne idée est de régler tous les "" (cellules vides) sur NA avant toute analyse supplémentaire.
Si vous lisez votre entrée à partir d'un fichier, c'est un bon choix pour convertir tous les "" en NA:
foo <- read.table(file="Your_file.txt", na.strings=c("", "NA"), sep="\t") # if your file is tab delimited
Si vous avez déjà chargé votre table, vous pouvez agir comme suit:
foo[foo==""] <- NA
Ensuite, pour ne conserver que les lignes sans NA, vous pouvez simplement utiliser na.omit()
:
foo <- na.omit(foo)
Ou pour conserver les colonnes sans NA:
foo <- foo[, colSums(is.na(foo)) == 0]
Je ne sais pas exactement quel type de jeu de données vous avez, alors je donne une réponse générale.
x <- c(1,2,NA,3,4,5)
y <- c(1,2,3,NA,6,8)
my.data <- data.frame(x, y)
> my.data
x y
1 1 1
2 2 2
3 NA 3
4 3 NA
5 4 6
6 5 8
# Exclude rows with NA values
my.data[complete.cases(my.data),]
x y
1 1 1
2 2 2
5 4 6
6 5 8