根据标题开始位置将 CSV 读入 R

2024-03-03

我有大量 CSV 文件。有些标题从第一行开始,有些标题从第三行开始,有些则从第七行开始,依此类推。

标题看起来都一样,只是在不同文件的不同行上开始。有没有办法有条件地读取 .csv 文件以从标题开始的位置开始?

例如,如果我知道标题都具有第一个列名称“office#”,我是否可以以某种方式指示 R 在第一次进入“office#”字段时开始读取 csv 文件并将该行视为标题?


I have 4 个 CSV 文件:

一张表的标题开始于row 1(虹膜.csv)

以及 3 个表头的开头为第 3、1 和 5 行(销售_1、销售_2、销售_3)

只要我知道第一列名称对于每个表,我可以使用smart_csv_reader函数来确定每个标头的开始位置,以及读取每个 CSV 文件的正确行号:

first_columns <- c('sepal.length', 'month', 'month', 'month')

smart_csv_reader <- function(directory) {
    header_begins <- NULL
    file_names <- list.files(directory, pattern=".csv$")
    for(i in 1:length(file_names)) {
        path <- paste(directory, file_names[i], sep='', col='')
        lines_read <- readLines(path, warn=F)
        header_begins[i] <- grep(first_columns[i], lines_read)
    } 
    print('headers detected on rows:')
    print(header_begins)
    l <- list()
    for(i in 1:length(header_begins)) {
        path <- paste(directory, file_names[i], sep='', col='')
        l[i] <- list(read.csv(path, skip=header_begins[i]-1))   
    }
    return(l)
}

只需传入目录所有 CSV 所在的位置。

Usage:

smart_csv_reader('some_csvs/')

[1] "headers detected on rows:"
[1] 1 3 1 5

正如你所看到的功能返回每个表的正确行号。它也是返回正确读取的每个表的列表:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据标题开始位置将 CSV 读入 R 的相关文章

随机推荐

  • CSS?这个箭头是怎么做出来的?

    这让我发疯 我一直在使用 Firefox 检查器来尝试找出这个箭头是如何在进展现场 http headwaythemes com 我通过检查器删除块来削减代码 并将其简化为 无论我在哪里检查 我都可以not找到任何这样的形状 没有背景图像
  • windows mingw下使用zlib

    我似乎无法让 zlib 在 Windows 下的 mingw 上执行任何操作 我下载了zlib http sourceforge net projects mingw files beta MinGW zlib zlib 1 2 3 1 m
  • 设计在不同的屏幕上破碎[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我设计了一个网页 其中很少有HTML元素没有响应 这些元素是动态生成的jQuery我相信 应该有一种方法可以让他们看起来反应灵敏 Me
  • 如何针对 TextReader 使用正则表达式?

    在 可能 非常大的文本中查找模式的最佳方法是什么 我可以使用正则表达式 但它接受字符串作为参数 有没有办法将它与 TextReader 或某种流一起使用 不 正则表达式可能需要进行回溯 由于流只能向前读取 这意味着无论如何它都必须将整个流保
  • 无法在 Docker 容器内从 Google API 交换 AccessToken

    我有一个用 Go 编写的网络应用程序 使用 oauth2 包golang org x oauth2 通过 Google 登录用户 按照本教程操作https developers google com identity sign in web
  • Facebook API - uids 和电子邮件 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试开发一个应用程序 用户 X 已登录 Facebook 应用程序有一组电子邮件地址 可能是用户 X 的朋友 应用程序获取用户
  • 为什么要在 Objective C 构造函数中使用 [super init]?

    假设我有一个名为 Item 的类 它是 NewsItem 和 TwitterItem 的超类 如果我想创建一些 NewsItem 我必须使用 在构造函数内 self super init 如果是 为什么 在 Java C 中我会这样做 Ne
  • Flexbox 实现水平滚动

    我正在使用 Flexbox 布局制作一个购物中心网站 但 Flexbox 在某些区域会导致问题 Flexbox 似乎在某些区域进行水平滚动 但我不希望这样 您的问题是横幅中的图像太宽 无法适应大多数视口 因此它们迫使页面变宽 没有简单的方法
  • 在 R 中重复多个 NULL

    在我的模拟中 我需要一个如下所示的向量 vec NULL NULL NULL NULL 2 2 2 2 4 4 4 4 但是 在 R 中 当我使用rep NULL 4 它什么也不返回 例如 vec all c rep NULL 4 rep
  • SwiftUI 垂直未对齐的文本

    我有一些垂直未对齐的文本 我不知道为什么 代码 struct IBANInputView View State var securityDigits State var bankCode State var accountNumber va
  • CSS 动画在 Chrome 中不起作用

    对项目的一些见解 一个完整的交互式网站 动画将在其中播放 然后它们会停止 一旦它们停止并且动画上发生鼠标悬停事件 它将播放直到动画完成 70 当单击另一个对象时 在本例中 案例文本 它将完成它的循环 我的项目合作伙伴在 Google Web
  • 语法与运算符结合性之间的关系

    一些编译器书籍 文章 论文谈论语法的设计及其运算符的结合性的关系 我是自上而下的忠实粉丝 尤其是递归下降 解析器 到目前为止我编写的大多数 如果不是全部 编译器都使用以下表达式语法 Expr Term Term Term Factor Fa
  • 适用于 emacs 的交互式拼写检查程序

    我最近切换到 emacs24 并升级到 Ubuntu 12 04 我似乎无法让 hunspell 再次正常工作 我发现 hunspell 总体上比 aspell 更好 Hunspell 只想使用澳大利亚词典而不是英语美国词典 否则会冻结我的
  • 如何将 selenium webelelements 转换为 python 中的字符串列表

    我从 Scopus 网站收集了强制性数据 我的输出已保存在名为 文档 的列表中 当我对这个列表的每个元素使用 type 方法时 python 返回这个类
  • 接受 Flask url 中的整数列表而不是一个整数

    我的 API 有一个通过 url 中传递的 int id 来处理用户的路由 我想传递一个 id 列表 这样我就可以向 API 发出一个批量请求 而不是多个单个请求 我如何接受 id 列表 app route user
  • 运行应用程序时,在 VSCode 中启动 ASP.NET Core 应用程序中的特定 URL

    如果重要的话 可以在 Mac 上运行 在 Visual Studio 中 您可以在运行或调试 ASP NET Core 项目时使用此方法启动特定 URL 使用 launchUrl 属性 这是一个示例 launchSettings json
  • Laravel 按日期时间格式中的小时进行分组

    如何按一天中的时间对网站上的 注册 进行分组 我已经尝试过了 但它不起作用 regs DB table registrations gt select createddatetime DB raw COUNT id gt groupBy D
  • 如何访问 docker-compose 在 haproxy 配置中创建的副本

    我有一个简单的 haproxy cfg 如下所示 frontend http bind 8080 mode http use backend all backend all mode http server s1 ws 8080 现在我有一
  • 在 Haskell 中查找给定集合 A 和通用集合 U 的补集 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我尝试编写一个函数 补集 给定一个集合 A 和一个通用集 U 返回 A 相对于 U 的补集 包装在 Just 类型构造函数中 我必须仔
  • 根据标题开始位置将 CSV 读入 R

    我有大量 CSV 文件 有些标题从第一行开始 有些标题从第三行开始 有些则从第七行开始 依此类推 标题看起来都一样 只是在不同文件的不同行上开始 有没有办法有条件地读取 csv 文件以从标题开始的位置开始 例如 如果我知道标题都具有第一个列