J'ai un ensemble de données avec trois colonnes: année, ville, valeur qui ressemble à ceci:R - Gardez données les plus récentes qui ne sont pas NA, à moins que NA disponible
year = c(2010, 2013, 2010, 2013, 2013)
city = c("Berlin","Berlin", "Munich", "Munich", "Frankfurt")
value = c(1234, NA, NA, 6372, NA)
data <- data.frame(year, value1, value2)
year city value
1 2010 Berlin 1234
2 2013 Berlin NA
3 2010 Munich NA
4 2013 Munich 6372
5 2013 Frankfurt NA
Je voudrais savoir comment sous-ensemble cela pour que je ne conserver que les données les plus récentes qui est disponible, de sorte qu'à la fin, je suis parti avec des données comme ceci:
year city value
1 2010 Berlin 1234
2 2013 Munich 6372
3 2013 Frankfurt NA
Si je sous-ensemble de l'année le plus, je reçois NAs où pour cette année, ISN 't données. Si je sous-ensemble sur !is.na()
, je perds toutes les lignes où il ya seulement NA disponible.
Ce que je veux faire est d'obtenir plus précisément l'année le plus élevé pour une ville donnée avec les données, à moins qu'il n'y a que pour cette ville NAs, puis l'année le plus élevé avec NA. Comment pourrais-je m'y prendre?
Que voulez-voulez-vous sous-ensemble? De votre exemple, il semble que vous ne voulez pas sous-ensemble pour l'année la plus élevée, y at-il une autre variable que vous ne montrez pas ici? –
Ah, non: Je veux sous-ensemble pour la colonne ville: l'année la plus élevée avec des données pour une ville donnée, à moins qu'il n'y ait que des NA pour cette ville, puis l'année la plus élevée avec NA. Est-ce que cela le rend plus clair? – LukasKawerau