J'ai vu diverses questions posées sur le recodage des variables (par exemple Recodage des variables avec R ) mais je me demandais s'il y avait un moyen simple de «retourner» complètement les données. Je travaille actuellement avec une variable x
qui a une valeur de 0 à 30 qui compte le nombre de jours qu'un patient n'a PAS passé en USI. Ce que je veux, c'est le nombre de jours passés à l'USI, c'est-à-dire que si quelqu'un n'a pas passé une seule journée à l'USI, il aura une valeur x = 30
mais je veux une valeur x = 0
et ainsi de suite. Évidemment, je pourrais recoder chaque valeur individuellement, mais dans l'intérêt de sauvegarder les touches et d'en apprendre un peu plus sur R, je me demandais s'il y avait une solution simple.
3 Réponses :
L'addition et la soustraction dans R sont vectorisées. Cela signifie que vous pouvez appliquer une fonction à un vecteur et il renverra un vecteur, plutôt que d'avoir à boucler sur le vecteur.
set.seed(999) ICU = sample(30) ## number of days in ICU not_ICU = 30 - ICU ## returns number of days not in ICU
Est-ce que cela aide?
en utilisant la soustraction:
x<-0:30 y<-30-x
simple mais élégant. je l'aime bien
Vous pouvez simplement inverser les données en utilisant (x - max (x)) * -1) + min (x)
( icu <- seq(-1,1,0.1) ) inv(icu)
La raison n'est pas simplement en soustrayant, cela fonctionne également sur les vecteurs avec des valeurs négatives.
inv <- function(x){ ((x - max(x)) * -1) + min(x) } icu <- 0:30 inv(icu)
Je vois que c'est une meilleure solution puisque cela fonctionne en général. Merci.
prenez juste 30 - le nombre de jours: 30- (1:30)