Ho due colonne numeriche score.a
e score.b
. Voglio creare una nuova variabile score.c
che trasferisce il punteggio osservato da aob, ma quando sono osservati in entrambi, ho bisogno di prendere la media.Crea una nuova colonna in base a due altre colonne, ma nella media se osservata in entrambi
help <- data.frame(deid = c(5, 7, 12, 15, 25, 32, 42, 77, 92, 100, 112, 113),
score.a = c(NA, 2, 2, 2, NA, NA, NA, NA, NA, NA, 2, NA),
score.b = c(4, NA, NA, 4, 4, 4, NA, NA, 4, 4, NA, 4))
crea
deid score.a score.b
1 5 NA 4
2 7 2 NA
3 12 2 NA
4 15 2 4
5 25 NA 4
6 32 NA 4
7 42 NA NA
8 77 NA NA
9 92 NA 4
10 100 NA 4
11 112 2 NA
12 113 NA 4
e spero di creare un df che assomiglia
deid score.a score.b score.c
1 5 NA 4 4
2 7 2 NA 2
3 12 2 NA 2
4 15 2 4 3
5 25 NA 4 4
6 32 NA 4 4
7 42 NA NA NA
8 77 NA NA NA
9 92 NA 4 4
10 100 NA 4 4
11 112 2 NA 2
12 113 NA 4 4
per esempio, nella riga 4 si prende la media.
Il mio tentativo ha utilizzato help %>% group_by(deid) %>% mutate(score.c = (score.a + score.b)/2)
ma questo ha gestito solo i dati osservati in entrambe le colonne.
bloccato su dplyr e dimenticato su rowMeans ... grazie, @akrun! – bpace
@bpace Se è necessario fare in 'dplyr'. Prova 'help%>% mutate (val = (pmax (score.a, score.b, na.rm = TRUE) + pmin (score.a, score.b, na.rm = TRUE)/2)' – akrun
buono a sapersi, grazie ... non ho dimestichezza con pmax() e pmin() quindi li verificherò – bpace