R: Сокращение набора данных при избыточности

Я написал эту кучу кода

x <- tbl_df(df)
output_frame <- head(x, 1)
compare_frame <- head(x, 1)
a <- numeric(ncol(x))

for (i in 2:nrow(x)) {
  for (j in 1:ncol(x)) {

    if (identical(compare_frame[1 , ], x[i , ])) {
      next()
    } else {
      if (identical(compare_frame[1 , j], x[i , j])){
        next()
      } else {
        a[j] <- a[j] + 1

        if (a[j] == 2) {
          output_frame <- rbind(output_frame, compare_frame[1 , ])
          a[j] <- 1  
        }
        compare_frame[1 , j] <- x[i , j]
        if ((sum(a)-2)/ncol(x) == 1) {
          output_frame <- rbind(output_frame, compare_frame[1 , ])
        }
      }
    }
  }
}

обычно это работает так: у меня есть набор данных с различными измерениями. этот код читает ячейку набора данных по ячейке и записывает каждый раз, когда значение ячейки изменилось, так что, когда все ячейки имеют значения, измененные один раз, я бы записывал результат каждый раз в новый кадр ( output_frame) дополнительно, когда ячейка изменяет свою Значение вдвое также запишет результат в выводе, хотя все остальные ячейки не изменятся.

Проблема, с которой я столкнулся в этом коде, состоит в том, что я выполняю его в небольшом наборе данных с небольшим количеством строк, он работает отлично, но когда я пробую его на больших наборах, он, кажется, не работает (я тестировал его один раз на 270 x 6). установить и в конечном итоге с выходом 565 х 6), и я не могу найти, где ошибка в моем коде, как правило, она должна работать.

0 ответов

Другие вопросы по тегам