Merci pour les articles précédents et les réponses professionnelles. Je peux presque faire mon analyse, sauf ces conditions avec NA. Voici mon data.frame
et le code utilisé. Pourriez-vous m'apprendre à résoudre le problème lorsque la condition contient une valeur NA?R: signifie quand les conditions sont nécéssaires
df1 <- data.frame(A = c(1,2,4, 5), B=c(1,3,NA,1), C=c(1,1,3, NA), D=c(1,1,2,2))
En utilisant ce code, je reçois DF1 comme suit:
A B C D
1 1 1 1 1
2 2 3 1 1
3 4 NA 3 2
4 5 1 NA 2
Avec l'aide de Andrie, Sacha Epskamp et Chase (R: get average column A based on a range of values in column B), je suis arrivé des valeurs moyennes de A quand D est compris entre 1 et 3, soit 2 dans ce cas, avec ce code. J'ai obtenu ma réponse en tant que 4.5 comme prévu (moyenne de 4 et 5 dans la colonne A). Cependant, lorsque je remplace la colonne D à la colonne C, qui contient NA. Ma réponse pourrait seulement être NA. alors que je me attendais à voir la réponse à la moyenne 1 et 2, en négligeant la 3e rangée (supérieure à 2) et la 4ème ligne (avec NA) dans la colonne C.
mean(df1$A[df1$C>0 & df1$C<2])
R> NA (i expect the count to be 1.5)
Je sais na.omit
pouvez supprimer tous les lignes avec na
dans les entrées de df1
. Cependant, je préfère ne pas le faire, car je voudrais aussi obtenir la moyenne et compte pour toutes les colonnes, quand l'entrée d'une colonne est NA. (Par exemple, je veux aussi faire une analyse moyenne (df1 $ A, [is.na (df1 $ C)])
J'ai également essayé de tester en utilisant na.rm=T
dans la partie condition, mais R ne l'a pas reconnu, comme maintenant la NA est dans la partie de l'état Par exemple:.
mean(df1$A[df1$C>0 & df1$C<2, na.rm=T])
Error in df1$A[df1$C > 0 & df1$C < 2, na.rm = T] :
incorrect number of dimensions
Je crois qu'il ya plus intelligente de le faire Pls aimablement des conseils
double possible de [script R - retirer les valeurs de NA à partir d'un vecteur] (http://stackoverflow.com/questions/7706876/r-script-removing-na-values-from-a-vector) –