Я пробовал локальную функцию подавления sdcMicro со следующим кодом
library(sdcMicro)
df <- read.csv('nba-players-stats/player_data.csv')
columns <- c("weight")
sdc0 <- createSdcObj(dat = df, keyvars = columns)
get_bucket_range <- function(interval,lower,higher){ # Just some function used to generate the bucket intervals
bucket <- c(lower)
current <- lower
while (current < higher) {
current <- current + interval
if (current > higher){
current <- higher
}
bucket <- c(bucket,current)
}
bucket
}
bucket_range <- get_bucket_range(10,100,400)
sdc1 <- globalRecode(sdc0,column = columns, breaks = bucket_range)
df$"weight" <- sdc1@manipKeyVars$"weight"
k = 2
sdc2 <- localSuppression(sdc1, k = k, importance = NULL)
sdc2 <- localSuppression(sdc0, k = k, importance = NULL)
Однако, каждый раз, когда я пытаюсь выполнить любую из функций localSuppression в столбце веса, я получаю эту ошибку:
Error in if (any(TF)) { : missing value where TRUE/FALSE needed
Это, кажется, происходит только в столбце веса. Другие столбцы, такие как высота, колледж, позиция, year_start и year_end, в порядке. Что я делаю не так?
Набор данных, который я использую, взят из этой ссылки на Kaggle: https://www.kaggle.com/drgilermo/nba-players-stats
РЕДАКТИРОВАТЬ: Очевидно, это происходит всякий раз, когда столбец назван ' вес'. Помогает просто изменить имя столбца.