Добавить новую строку в кадр данных R для l oop без использования NROW () - PullRequest
0 голосов
/ 10 апреля 2020

Проблема

Добавление строки в фрейм данных в функции для измерения точности.

Усилие в R

Функция compute_accuracy.fun c () возвращает точность измерения точности. IF l oop вызывает compute_accuracy.fun c () и добавляет новые строки в data.frame.

Добавить новую строку в фрейм данных, не работает

Необходимо добавить новую строку для каждого для ... l oop с использованным порогом и вычисленной точностью. Я новичок в этом стремлении добавлять новые строки в R data.frame, динамически внутри for ... l oop.

compute_accuracy.func <- function(t_threshold) {
  tryCatch({
    x <- accuracy.meas(full$y, loans_predict$fit, threshold=t_threshold)
    return(x$precision) 
  }, 
  error = function(e) return(e)
  )
}

df_accuracies <- data.frame(n=0, threshold=0, precision=0)
compute_for_values = seq(0.1,0.9,by=0.1)
for(i in compute_for_values){
  threshold = i
  precision <- compute_accuracy.func(i)
  df_accuracies[nrow(df_accuracies) + 1,] <- rbind(threshold, precision)
}

1 Ответ

0 голосов
/ 10 апреля 2020

Решено с помощью этого подхода: используется векторный подход, а не rbind, например, c () с переменными внутри c ().

df_accuracies <- data.frame(n=0, threshold=0, precision=0)
compute_for_values = seq(0.15,0.95,by=0.1)
n=0
for(i in compute_for_values){
  n <- n+1
  threshold = i
  precision <- compute_accuracy.func(i)
  df_accuracies[nrow(df_accuracies) + 1,] <- c(n, threshold, precision)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...