Я хочу получить свернутый фрейм данных из списка фреймов данных с минимальными значениями для каждой ячейки на основе той же ячейки для всех фреймов данных, доступных в списке.
В приведенном ниже примере5 строк и 2 столбца.Если я запускаю код, показанный ниже, для фрейма данных, который имеет 60000 строк и 15 столбцов, это будет очень медленно.Я хочу определить, существует ли более эффективный способ решения этой проблемы.
one_df <- data.frame(v1 = c(0,1,2,3,4), v2 = c(5,6,7,8,9))
two_df <- data.frame(v1 = c(1,2,2,3,4), v2 = c(5,6,7,7,8))
my_list <- list(one_df, two_df)
num_rows <- dim(one_df)[1]
num_cols <- dim(one_df)[2]
result_df <- one_df ## The collapsed data frame has the same dimensions as the input data frame
for (num_row in 1:num_rows){
for (num_col in 1:num_cols){
result_df[num_row, num_col] <- do.call("min", lapply(my_list, function(x) x[num_row, num_col]))
}
}
Пример ввода:
> my_list
[[1]]
v1 v2
1 0 5
2 1 6
3 2 7
4 3 8
5 4 9
[[2]]
v1 v2
1 1 5
2 2 6
3 2 7
4 3 7
5 4 8
Ожидаемый вывод для примера:
> result_df
v1 v2
1 0 5
2 1 6
3 2 7
4 3 7
5 4 8