Диапазоны всех столбцов всех CSV-файлов в R - PullRequest
0 голосов
/ 10 марта 2019

У меня есть 300 CSV-файлов, содержащих одинаковые наборы данных, я хочу вычислить минимальные и максимальные значения (диапазоны) всех столбцов во всех CSV-файлах и хочу создать итоговую таблицу с минимальными и максимальными значениями всех этих CSV-файлов и всех столбцов,Я использую следующую функцию, не могу понять, как работать в цикле и разработать финальную таблицу.

kk <- Map(function(x) cbind(x,min=min(var[,x]),
                            max=max(var[,x])), as.list(names(var)))
data.frame(do.call(rbind,kk))

1 Ответ

0 голосов
/ 10 марта 2019

Рассмотрите возможность создания списка фреймов данных, содержащих минимальные и максимальные значения каждого столбца во всех наборах данных:

# GET LIST OF CSV FILES
csv_files <- list.files(pattern=".csv")

df_list <- lapply(csv_files, function(f) {
    df <- read.csv(f)
    # BUILD LIST OF MIN AND MAX ACROSS ALL COLUMNS
    agg_list <- lapply(df, function(col) c(min(col), max(col)))
    # BIND AGGREGATES INTO A DATA FRAME
    min_max_df <- do.call(data.frame, agg_list)

    # RETURN UPDATE DF WITH TWO NEW COLUMNS
    transform(min_max_df, file_name = f, aggregate=c("min", "max"))
})

# CONCATENATE ALL DFs
final_df <- do.call(rbind, df_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...