【问题标题】:R: want random records from multiple output filesR:想要来自多个输出文件的随机记录
【发布时间】:2017-10-11 02:09:33
【问题描述】:

我对使用 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 中打开它们?我需要使用哪些关键功能?

-编辑- 文件夹 A 有 11 个文件,文件夹 B 有 11 个文件,文件夹 C 有 6 个文件。 文件夹 A 中的单个文件有 2154 行,其余文件大小相似。我希望每个文件中的 6 个随机记录/行以某种方式显示,无论它是在 R 中还是在单独的文件中。

【问题讨论】:

  • 您没有充分解释文件包含的内容或您尝试随机化的内容。你想读取随机文件吗?在这种情况下,您需要使用 list.files sampleread.tableread.csv 类似的东西。如果你想从文件中读取随机“记录”,你需要读取文件然后随机行我猜?这取决于文件实际包含的内容
  • 为什么用 Python 标记它?

标签: r csv gis


【解决方案1】:

要查找工作目录(包括子目录)中的所有.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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多