r - R中所有csv文件的所有列的范围
问题描述
我有 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))
解决方案
考虑构建一个数据框列表,其中包含所有数据集中每列的最小值和最大值:
# 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)
推荐阅读
- code-generation - 给定 Rascal 中的具体语法,如何生成语言的任意实例?
- android - 如何删除我的 NullPointerException?
- html - 如何在 Bootstrap 的列顶部对齐文本?
- google-chrome - Chromium 不会从影子 DOM 内容中推断菜单项名称
- c# - 使用包含条件的 Lambda 表达式在 C# 中创建属性
- java - Java等价于python装饰器
- r - ggplot_line:用 X 轴值标记前 2 个峰值
- firebase - Firebase Cloud Function:& Flutter:无法在模拟器上使用 https 可调用函数 [firebase_functions/unavailable] UNAVAILABLE
- database - 如何处理 MongoDB 中的库存/库存数据?
- python - 从数据框列中提取 TLD 和 SLD 到新列中