我很擅长使用R,所以我不确定是否有一个简单的解决方案来满足我的需求。
我为多个位置的3个不同变量创建了文件夹。例如,在文件夹A,B和C中的每一个中,存在多个输出文件,其名称类似于文件夹A:A_1,A_2,A_3,文件夹B:B_1,B_2,B_3,文件夹C:C_1,C_2,C_3。每个文件都是.csv文件
我想创建一个新脚本,它将获取每个文件,并为我提供6个包含所有变量的随机记录,以便我可以将输出与原始数据集进行比较。
这需要创建新文件还是只能在R中打开?我需要使用哪些关键功能?
CNC中 文件夹A有11个文件,文件夹B有11个文件,文件夹C有6个文件。 文件夹A中的单个文件有2154行,其余文件大小相似。我希望每个文件中的6个随机记录/行以某种方式显示,无论它是在R中还是在单独的文件中。
答案 0 :(得分:0)
要查找工作目录(包括子目录)中的所有.csv
文件,可以将list.files
与一些参数一起使用:
all_csvs <- list.files(pattern = ".csv$", recursive = TRUE)
all_csvs
对象将是一个包含所有文件名的字符向量。
您应该能够使用以下内容一次将所有文件读入一个数据框:
library(tidyverse)
all_data <- map_df(all_csvs, ~read_csv(.))
您可以使用以下内容读取每个.csv
文件的前10行:
first_10 <- map_df(all_csvs, ~read_csv(., n_max = 10))
如果您想从每个.csv
中取10个随机行,请尝试以下方法:
random_10 <- map_df(all_csvs, ~read_csv(.) %>% sample_n(10))