Я новичок в R и в настоящее время изучаю многомерный набор данных, в частности, этот: http://archive.ics.uci.edu/ml/datasets/Wine
Я нашел в сети функцию, которая вычисляет внутригрупповые и межгрупповые отклонения.Веб-сайт, на который я ссылаюсь, является следующим: https://little -book-of-r-for-multivariate-analysis.readthedocs.io / en / latest / src / multivariateanalysis.html .
Как я уже говорил, функция для внутригрупповой дисперсии работает, однако, когда я пытаюсь использовать функцию для межгрупповой дисперсии, я получаю эту ошибку: Предупреждение: In mean.default (переменная):Аргумент не является числовым или логическим: возвращает NA
Конкретная функция выглядит следующим образом:
calcBetweenGroupsVariance <- function(variable,groupvariable)
# find out how many values the group variable can take
{ groupvariable2 <- as.factor(groupvariable[[1]])
levels <- levels(groupvariable2)
# calculate the overall grand mean:
numlevel s <- length(levels)
grandmean <- mean(variable)
# get the mean and standard deviation for each group:
numtotal <- 0
denomtotal <- 0
for (i in 1:numlevels)
{
leveli <- levels[i]
levelidata <- variable[groupvariable==leveli,]
levelilength <- length(levelidata)
meani <- mean(levelidata)
sdi <- sd(levelidata)
numi <- levelilength * ((meani - grandmean)^2)
denomi <- levelilength
numtotal <- numtotal + numi
denomtotal <- denomtotal + denomi
}
# calculate the between-groups variance
Vb <- numtotal / (denomtotal - numlevels)
Vb <- Vb[[1]]
return(Vb)
}
Любая помощь для исправления этой ошибки будет принята с благодарностью.Спасибо.