Je suis au courant de la toute la question concernant la filter multiple conditions
des réponses très complètes telles que Q1, Q2, ou même pour enlever NA values
Q3, Q4.dplyr: Filtre plusieurs conditions avec ** sélection NA ** Valeurs
Mais j'ai une autre question, comment je peux faire filter
en utilisant dplyr
ou même data.table
fonctions pour maintenir les valeurs et NA
un conditional parameters
?
comme exemple dans ce qui suit, je voudrais essayer de garder toutes les valeurs dans Var3
qui est >5
PLUSNA
values
.
library(data.table)
library(dplyr)
Var1<- seq(1:5)
Var2<- c("s", "a", "d", NA, NA)
Var3<- c(NA, NA, 2, 5, 2)
Var4<- c(NA, 5, 1, 3,4)
DT <- data.table(Var1,Var2,Var3, Var4)
DT
Var1 Var2 Var3 Var4
1: 1 s NA NA
2: 2 a NA 5
3: 3 d 2 1
4: 4 NA 5 3
5: 5 NA 2 4
Les résultats attendus:
Var1 Var2 Var3 Var4
1: 1 s NA NA
2: 2 a NA 5
3: 3 d 2 1
4: 5 NA 2 4
J'ai essayé, mais sans succès suivants:
##Using dplyr::filter
DT %>% filter(!Var3 ==5)
Var1 Var2 Var3 Var4
1 3 d 2 1
2 5 <NA> 2 4
# or
DT %>% filter(Var3 <5 & is.na(Var3))
[1] Var1 Var2 Var3 Var4
<0 rows> (or 0-length row.names)
## using data.table
DT[DT[,.I[Var3 <5], Var1]$V1]
Var1 Var2 Var3 Var4
1: NA NA NA NA
2: NA NA NA NA
3: 3 d 2 1
4: 5 NA 2 4
Toute aide avec l'explication est très appréciée!
Est 'Var3 <5 | is.na (Var3) 'identique à' Var3 <5 &! is.na (Var3) | est.na (Var3) '? – www
@ycw Ce serait pareil. Je suis un peu prudent quand je fais affaire avec des NA – akrun
Merci pour votre explication. C'est en effet une bonne idée d'être prudent lorsqu'il s'agit de «NA». – www