Почему я получаю «неверное» правильное «аргумент» при использовании cut () - PullRequest
0 голосов
/ 07 ноября 2018

Я создал функцию в R, которая создает децили (или любую n-плитку) на основе показателя объема в отличие от количества наблюдений.

User_Decile <- function(x,n,Output = " "){
    require(dplyr)
    df <- data_frame(index = seq_along(x),value = x)
    x_sum <- sum(df$value)
    x_ranges <- x_sum/n
    df <- df %>% arrange(value)
    df$cumsum <- cumsum(df$value)
    df$bins <- cut(df$cumsum, breaks = floor(seq(0, x_sum, x_ranges)),
                   right = T,
                   include.lowest = T,
                   labels = as.integer(seq(1,n,1)))

if(Output == "Summary"){
    df <- df %>% group_by(bins)
    return(df %>% summarise(Lower_Bound = min(value),
           Upper_Bound = max(value) - 1,
           Value_sum = sum(value)))}

else {
    df <- df %>% arrange(index)
    return(as.numeric(df$bins))}
}

(x - это вектор чисел, n - это число бинов / текстилей, в которые группируются данные, Output= указывает, требуется ли сводка границ / данных или самих фактических данных. )

Ранее он хорошо работал в программе, которую я создал для сегментирования некоторых данных, но я просто попытался использовать эту функцию снова впервые за пару месяцев и получаю:

Error in .bincode(x, breaks, right, included.lowest) :
  invalid 'right' argument

В соответствии с ошибкой проблема связана с аргументом 'right' в функции cut (). Насколько я знаю, аргумент right= является логическим и принимает только значения T или F. Я пробовал оба, но ни один, кажется, не работает.

Есть ли у кого-нибудь решение этой проблемы или может порекомендовать другую функцию вместо cut()?

1 Ответ

0 голосов
/ 07 ноября 2018

?TRUE утверждает, что:

TRUE и FALSE - зарезервированные слова, обозначающие логические константы в R язык, тогда как T и F являются глобальными переменными, чьи начальные значения установите их.

Похоже, что T здесь интерпретируется как нечто иное. Вы всегда должны использовать TRUE, чтобы быть в безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...