R中所有csv文件的所有列的范围

时间:2019-03-10 03:06:57

标签: r

我有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 :(得分:0)

考虑构建一个数据框列表,其中包含所有数据集中每列的最小值和最大值:

# 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)