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), и я не могу найти, где ошибка в моем коде, как правило, она должна работать.