Ho un dataframe che memorizza valori diversi. Esempio:Calcola la media di due colonne in un dataframe
a$open a$high a$low a$close
1.08648 1.08707 1.08476 1.08551
1.08552 1.08623 1.08426 1.08542
1.08542 1.08572 1.08453 1.08465
1.08468 1.08566 1.08402 1.08554
1.08552 1.08565 1.08436 1.08464
1.08463 1.08543 1.08452 1.08475
1.08475 1.08504 1.08427 1.08436
1.08433 1.08438 1.08275 1.08285
1.08275 1.08353 1.08275 1.08325
1.08325 1.08431 1.08315 1.08378
1.08379 1.08383 1.08275 1.08294
1.08292 1.08338 1.08271 1.08325
Quello che voglio fare, è la creazione di una nuova colonna a$mean
memorizzare la media di a$high
e a$low
per ogni riga.
Ecco come ho realizzato che:
highlowmean <- function(highs, lows){
m <- vector(mode="numeric", length=0)
for (i in 1:length(highs)){
m[i] <- mean(highs[i], lows[i])
}
return(m)
}
a$mean <- highlowmean(a$high, a$low)
Comunque io sono un po 'nuova in R e in lingue functionnal in generale, quindi sono abbastanza sicuro che ci sia un modo più efficiente/semplice realizzarlo.
Come raggiungere questo il modo più intelligente?
Quale sarebbe il comportamento di non utilizzare rowMeans? NA sarà preso come 0? – Lovy
@LoveMetal Basta controllare questo 'mean (c (3, NA), na.rm = TRUE)' e '(3 + 0)/2' – akrun