Допустим, я хочу вычислить конкретное значение для строки или группы (в этом примере вопрос это значение является средним), как бы я это сделал?
Personal_mean <- function(observations, data, na.rm){
#Take obs from data
observations <- eval(substitute(observations), envir=data)
#add the observations together
sum_of_obs <- sum(observations, na.rm=na.rm)
#adjusts for NA in data
if (na.rm==TRUE){
length_of_obs <- length(observations[!is.na(observations)])
} else{
length_of_obs <- length(observations)
}
# applies above calculations per observation of the object
m<-0
for(i in 1:length(observations[!is.na(observations)])){
m[i]<- sum_of_obs[i]/length_of_obs[i]
}
return(m)
}
Я хочу протестировать эту функцию с помощьюследующие примеры данных:
testdata <- data.frame(Gr,O1,O2,O3)
Gr <- c("G1","G2","G3","G4","G5")
O1 <- c(5,7,10,3.5,5)
O2 <- c(4,8,20,NA,3)
O3 <- c(6,NA,18,5.5,2)
Таким образом, это должно дать средние значения 5,7,5,16,4,5 и 3,3 По сути, я хочу, чтобы эта функция делала, чтобы вычислить среднее значение для каждой строки или группы, чтобы иметь возможностьиметь дело с NA в данных, уметь брать наблюдения из предоставленных данных.Всякий раз, когда я пробую этот код, я получаю следующий результат:
[1] 7.461538 NA NA NA NA NA NA NA NA NA
[11] NA NA NA
Так что же я не так делаю, что он не работает?
Заранее спасибо!