Índice de Blau/Blau index of diversity

Olá! Eu quero rodar o índice de blau no R a partir desse código com os dados da minha pesquisa, porém não estou conseguindo. Minha maior dificuldade é colocar os dados no código de modo que ele possa rodar, para então achar o índice de diversidade da população que estou estudando.

Dados da minha pesquisa:

GroupID: 969, 24, 188, 118, 0;
Feature: Branca, preta, amarela, parda, indígena.

Código:

blau.index <- function(groupid, feat){
  blau.index <- rep(0, length(levels(as.factor(groupid))))
  if (is.numeric(feat)) { # if the feature is denoted as a numeric ordinal variable
    for (i in 1:length(levels(as.factor(groupid)))){
      for (j in 1:length(levels(as.factor(feat)))){
        blau.index[i] <- blau.index[i] + ((sum(feat[groupid == i & feat == j])/j)/ length(feat[groupid == i]))^2
      }
    }
  } else { # if the feature is denoted as as strings
    number.of.features <- length(levels(as.factor(feat)))
    feat.num <- rep(NA, times = length(as.factor(feat)))
    for (i in 1:number.of.features){
      feat.num[feat == levels(as.factor(feat))[i]] <- i
      feat.num[is.na(feat.num)] <- (number.of.features + 1)
    }
    for (i in 1:length(levels(as.factor(groupid)))){
      for (j in 1:length(levels(as.factor(feat.num)))){
        blau.index[i] <- blau.index[i] + ((sum(feat.num[groupid == i & feat.num == j])/j)/ length(feat.num[groupid == i]))^2
      }
    }
  }
  blau.index <- (1 - blau.index)
  return(blau.index)
}

Se alguém conseguir/puder me ensinar como devo proceder, ficarei muito grato. Obrigado pela atenção!