fread (data.table) 选择列,如果未找到列则抛出错误

2024-01-21

我正在使用 data.tables 将 csv 文件加载到 R 中fread功能。它有一堆我不需要的列,所以select参数就派上用场了。但是,我注意到,如果 csv 文件中不存在 select 中指定的列之一,则 fread 将默默地继续。如果 csv 文件中不存在所选列之一,是否可以使 R 抛出错误?

#csvfile has "col1" "col2" "col3" "col4" etc

colsToKeep <- c("col1", "col2" "missing")

data <- fread(csvfile, header=TRUE, select=colsToKeep, verbose=TRUE)

在上面的例子中,data将有两列:col1, col2。其余列将按预期删除,但是missing被默默地跳过。如果知道 fread 正在跳过该列,因为它没有找到它,那就太好了。


我建议先解析第一行,然后抛出您自己的错误。你可以这样做:

read_cols <- function(file_name, colsToKeep) {
    header <- fread(file_name, nrows = 1, header = FALSE)
    all_in_header <- all(colsToKeep %chin% unlist(header))
    stopifnot(all_in_header)

    fread(file_name, header=TRUE, select=colsToKeep, verbose=TRUE)
}

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

fread (data.table) 选择列,如果未找到列则抛出错误 的相关文章

随机推荐

  • Flutter Web Firebase TypeError:dart.global.firebase.firestore 不是函数

    我正在尝试在我的 flutter web 项目中使用 Firebase 但应用程序无法使用此消息运行 TypeError dart global firebase firestore is not a function at Object
  • 减少 Android studio 中的 Gradle 同步时间

    我使用的是 16GB 内存 SSD 硬盘的 Mac 每次构建 清理或打开项目时 Gradle 同步仍然需要 15 分钟以上 是否有任何 Android Studio 优化可以减少这个时间 更新 所有这些都在一定程度上有所帮助 将所有编译 c
  • 角度材质 未显示在自定义组件中

    所以我做了很多研究 但我就是无法弄清楚 我想使用 Angular 材质表单控件制作一个文本框组件 按照此tutorial https material angular io guide creating a custom form fiel
  • FluentMigrator迁移成功,但数据库没有变化

    我一定错过了一些非常基本的东西 我正在开发一个遗留项目 并且我正在尝试将 FluentMigrator 加入其中 因为我有一些有趣的数据库 我认为即将发生的变化和数据迁移将会产生很大的影响 使用此工具更容易 对于初始迁移 我只想将数据库提升
  • Hibernate @Table 注解中的动态模式

    想象一下 您在两个环境中有四个 MySQL 数据库模式 foo 产品数据库 bar 正在进行的重组foo db foo beta 测试数据库 and bar beta 新结构的测试数据库 此外 假设您有一个 Spring Boot 应用程序
  • jqgrid rowattr 不应用类

    我想根据列的值将背景颜色应用于 jqGrid 行的行 但是基本 rowattr 并未将类应用于行 下面是代码 为了简单起见 我删除了需要应用颜色的条件 jQuery employeeSalarysGrid jqGrid height 250
  • Azure 托管代理 - Visual Studio 2017

    我在 Azure 中设置了托管代理来执行 CI 构建 但在构建失败之前的 Visual Studio 构建步骤中收到以下警告 找不到 Visual Studio 版本 15 0 正在寻找最新版本 查看托管代理的文档 它们似乎没有使用 Vis
  • Matplotlib 图例中的字幕

    我正在使用 matplotlib 进行一些绘图 并且有一个图例告诉查看者这些点是用哪些传感器记录的 有多种类型的多个传感器 我希望在图例中添加字幕来告诉观众每组传感器的类型 我有一个可行的解决方案 但它有点像黑客 如下所示 创建图例时 它接
  • has_many 和belongs_to 关联的单选按钮

    我有一个 has many 和 Belongs to 关联 class Link lt ActiveRecord Base has and belongs to many categories belongs to property end
  • 如何在流程中获取函数的返回类型?

    以此为例 const myObj test true type MyType typeof myObj const getValue MyType gt return myObj how to do this type TheReturnT
  • 使用 API 以编程方式在 Azure DevOps Pipeline 中添加和更新测试

    我正在将我们的一个项目转换为使用 Azure DevOps 而不是 AppVeyor 进行 CI 作为构建的一部分 我们使用自定义测试运行器来执行某些测试 在 AppVeyor 中运行时 我们直接从测试运行程序调用 REST API 以通知
  • BroadcastReceiver 尝试在无序广播期间返回结果 - SMS Receiver

    我知道有很多这样的帖子 但没有一个对我有帮助 我的清单声明
  • java中的速率控制

    我正在寻找一个好的解决方案或者可能是一个 API 来解决以下问题 我的应用程序循环执行一项任务 例如发送电子邮件等 我需要将消息的平均速率限制为例如每秒 100 条消息或每最后一分钟 1000 条消息 不 我正在寻找一种算法或 API 来完
  • 如何在 Ansible 中更改和使用每个主机的全局变量?

    我正在尝试编写一个剧本来设置具有多个从服务器的 mysql 主从复制 对于每个从属服务器 我需要访问一个名为 next id 的变量 该变量应该在用于每个主机之前递增 例如 对于第一个从服务器 next id 应为 2 对于第二个从服务器
  • 批量http请求

    有谁知道批量http请求的标准方法 含义 在一次往返中发送多个 http 原子请求 出于性能原因 我们在 REST API 实现中需要这样的机制 这种机制可以显着减少客户端使用 API 所需执行的往返次数 提前致谢 Shay 定义包含客户端
  • 这个图案的名字? (答案:带有双重检查锁定的延迟初始化)

    考虑以下代码 public class Foo private static object lock new object public void NameDoesNotMatter if SomeDataDoesNotExist lock
  • 为什么这个全局变量没有被改变?

    为什么会出现 null 而不是设置为 ajax 调用返回的数据 我忽略的一定是一些简单的事情 var message document ready function fbFetchMessage alert message function
  • 如何从基于 Django 的站点管理任务的停止或重新启动?

    我将在服务器中运行一个脚本 该脚本将自动在数据库中创建模型实例 这个想法是使用无限循环 例如 while True 它将无休止地创建实例 直到我以某种方式停止它 我想使用 Django 从我的网站上很好地检查我的数据库有多大 然后我想停止或
  • DIV 重叠粘性页脚

    我有一个包含其他三个 div 的 div 页眉 内容 页脚 div class note div class header Title div div class content Some content div div class foo
  • fread (data.table) 选择列,如果未找到列则抛出错误

    我正在使用 data tables 将 csv 文件加载到 R 中fread功能 它有一堆我不需要的列 所以select参数就派上用场了 但是 我注意到 如果 csv 文件中不存在 select 中指定的列之一 则 fread 将默默地继续