我有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))
答案 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)