当前位置: 首页 > news >正文

R语言【base】——scan():读取数据值

Package base version 4.2.0


Description

从控制台或文件中读取数据到向量或列表中。


Usage

scan(file = "", what = double(), nmax = -1, n = -1, sep = "",quote = if(identical(sep, "\n")) "" else "'\"", dec = ".",skip = 0, nlines = 0, na.strings = "NA",flush = FALSE, fill = FALSE, strip.white = FALSE,quiet = FALSE, blank.lines.skip = TRUE, multi.line = TRUE,comment.char = "", allowEscapes = FALSE,fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)

Argumens

参数【file】:要从中读取数据值的文件的名称。如果指定的文件为"",则从键盘获取输入(或者如果重定向输入或嵌入R,则从stdin()读取)。(在这种情况下,输入可以通过空行或EOF信号来终止,在Unix上是' Ctrl-D ',在Windows上是' Ctrl-Z '。)

否则,文件名将相对于当前工作目录(由getwd()给出)进行解释,除非它指定了绝对路径。在支持的地方执行波浪扩展。当从脚本运行R时,file = "stdin"可用于引用进程的stdin文件流。

这可以是一个压缩文件。

或者,file可以是一个连接,它将在必要时打开,如果需要,则在函数调用结束时关闭。无论以何种模式打开连接,LF、CRLF或CR中的任何一个都将被接受为一行的EOL标记,因此将匹配sep = "\n"。

文件也可以是一个完整的URL。(有关支持的URL方案,请参阅URL帮助的' URLs '部分。)

要读取非当前编码的数据文件(例如UTF-8区域设置中的Latin-1文件或相反),请使用文件连接设置其编码参数(或scan的fileEncoding参数)。

参数【what】:给出了要读取的数据的类型。(这里的type是typeof的意思。)支持的类型有逻辑类型、整数类型、数字类型、复杂类型、字符类型、原始类型和列表类型。如果what是一个列表,则假定数据文件的每行都是包含长度(what)项(' fields ')的记录,并且列表组件的元素应该是列出的前六种(原子)类型之一或NULL,请参阅下面的' Details '部分。

参数【nmax】:要读取的数据值的最大数量,或者如果是列表,则要读取的记录的最大数量。如果省略或不为正数或整数的值无效(并且nlines未设置为正数),scan将读取到文件的末尾。

参数【n】:整数:读取数据值的最大个数,默认为不限制。无效值将被忽略。

参数【sep】:默认情况下,scan期望读取“空白”分隔的输入字段。或者,sep可用于指定分隔字段的字符。除非用引号括起来,否则字段总是用行结束标记分隔。如果指定,则应该是空字符串(默认值)或NULL或仅包含一个单字节字符的字符串。

参数【quote】:引用字符的集合作为单个字符串或NULL。在多字节区域设置中,引号字符必须是ASCII(单字节)。

参数【dec】:小数点字符。这应该是一个只包含一个单字节字符的字符串。(NULL和零长度字符向量也可以接受,并作为默认值。)

参数【skip】:在开始读取数据值之前要跳过的输入文件的行数。

参数【nlines】:如果为正数,则表示要读取的最大数据行数。

参数【na.strings】:特征向量。这个向量的元素被解释为缺失(NA)值。空白字段也被认为是逻辑、整数、数字和复杂字段中的缺失值。请注意,测试发生在从输入中删除空白之后,所以na.strings值可能需要预先去掉它们自己的空白。

参数【flush】:逻辑值。如果为TRUE,则scan将在读取请求的最后一个字段后刷新到行尾。这允许在最后一个字段后面放置注释,但禁止在一行中放置多个记录。

参数【fill】:逻辑值。如果为TRUE, scan将隐式地向字段少于what所暗示的任何行添加空字段。

参数【strip.white】:与what实参中的项相对应的逻辑值向量。它仅在指定sep时使用,并允许从字符字段中剥离前导和尾随的“空白”(数字字段总是被剥离)。注意:引号内的空格不会被去掉。如果strip.white长度为1,适用于所有字段;;否则,strip.white[i]为TRUE,并且第i个字段是模式字符(因为[i]是),那么字段i的前导和尾部未引号的空白将被剥离。

参数【quiet】:逻辑值。如果FALSE(默认值),scan()将打印一行,表示读取了多少项。

参数【blank.lines.skip】:逻辑值。如果为TRUE,输入中的空行将被忽略,除非对跳过和行进行计数。

参数【multi.line】:逻辑值。仅当what是列表时使用。如果为FALSE,则所有记录必须出现在一行上(但多条记录可以出现在一行上)。注意,使用fill = TRUE意味着记录将在一行的末尾终止。

参数【comment.char】:字符值。长度为1的字符向量,包含单个字符或空字符串。使用""完全关闭注释的解释(默认值)。

参数【allowEscapes】:逻辑值。c风格的转义如'  \n '应该被处理(默认)还是逐字读取?请注意,如果不在引号内,则可以将其解释为分隔符(而不是注释字符)。被解释的转义是控制字符' \a, \b, \f, \n, \r, \t,\v  '和八进制和十六进制表示,如'  \040 '和' \0x2A '。任何其他转义字符都被视为其本身,包括反斜杠。请注意,Unicode转义(以' \u '或' \U '开头:请参阅引号)永远不会被处理。

参数【fileEncoding】:字符串。If non-empty声明文件(不是连接也不是键盘)上使用的编码,因此字符数据可以重新编码。请参阅文件帮助的“编码”部分,以及“R数据导入/导出手册”。

参数【encoding】:为输入字符串假定的编码。如果值为"latin1"或"UTF-8",则用于将字符串标记为已知的Latin-1或UTF-8:它不用于重新编码输入(参见fileEncoding)。另见“详细信息”。

参数【text】:字符串。如果没有提供file,则通过文本连接从text的值读取数据。

参数【skipNul】:逻辑值。在读取字符字段时应该跳过空值吗?


Details

what的值可以是一个列表类型,在这种情况下,scan返回一个带有what中元素类型给定类型的vector列表。这提供了一种读取列数据的方法。如果任何类型为NULL,则跳过相应的字段(但是结果中会出现NULL组件)。

what或其组件的类型可以是六个原子向量类型之一,也可以是NULL(参见is.atomic)。

在此函数中,“White space”被定义为一个或多个连续字符,来自设置空格、水平制表符、回车符和换行符(又名“换行符”、“\n”)。它不包括表单提要和垂直制表符,但在Latin-1和Windows 8位区域设置中(但不包括UTF-8)'space'包括非破缺空间' ' '\xa0 ' ' '。

空的数字字段总是被视为缺失值。空字符字段被扫描为空字符向量,除非na.strings在被视为缺失值时包含""。

数字字段允许的输入是可选的空格,后面跟着NA或可选的符号,后面跟着十进制或十六进制常数(参见NumericConstants),或NaN、Inf或infinity(忽略大小写)。超出范围的值记录为Inf、-Inf或0。

对于整数字段,允许的输入是可选的空白,后面跟着NA或可选的符号和一个或多个数字(' 0-9 '):所有超出范围的值都转换为NA_integer_。

如果sep是默认值(""),引号字符串中的字符'  \  '会转义后面的字符,因此引号可以通过转义包含在字符串中。

如果sep是非默认值,则字段可能以' .csv '文件的样式被引用,其中引号("或"")内的分隔符被忽略,并且引号可以通过将它们加倍放入字符串中。但是,如果sep = "\n",则默认情况下假定希望逐字读取整行。

引号只在字符字段和NULL字段(可能跳过字符字段)中被解释。

请注意,由于sep是分隔符而不是结束符,因此通过scan("foo", sep = "\n", blank.lines.skip = FALSE)读取文件时,如果文件以换行符("\n")结尾,则会给出一个空的最后一行,如果不是,则不会。这可能不是你所期望的;参见readLines。

出现comment.char(除了在带引号的字符字段内),则表示该行的其余部分应视为注释并被丢弃。以注释字符开头的行(可能在带有默认分隔符的空白之后)被视为空行。

当从控制台读取时,有一个4095字节的行长度限制(这可能会施加一个较低的限制:参见“R简介”)。

如果是列表,则每1000行检查一次用户中断,否则每10000项检查一次。

如果file是一个字符串并且fileEncoding是非默认的,或者如果它是一个带有非默认编码参数的尚未打开的连接,则文本将被转换为UTF-8并以此声明(并且要扫描的编码参数将被忽略)。请参阅readLines的示例。

输入流中的嵌入式空值将终止当前正在读取的字段,并在每次调用scan时发出警告。设置skipNul = TRUE会导致忽略它们。


Value

如果what是列表,则是与what具有相同长度和相同名称的列表。

否则,向量的类型与what相同。

如果编码为“latin1”或“UTF-8”,则结果中的字符串将具有声明的编码。


Note

multi.line 默认值与 S不同。要每行读取一条记录,请使用flush = TRUE和multi.line = FALSE。(注意,加引号的字符串仍然可以包含嵌入的换行符。)

如果未指定项数,则内部机制将以2的幂重新分配内存,因此可以使用最多三倍于所需的内存。(它需要新的和旧的副本。)如果可以,在输入大向量时指定n或nmax,在输入大列表时指定nmax或lines。

在打开的连接上使用scan读取部分行可能会丢失字符:使用显式分隔符来避免这种情况。

在字段中使用null字节(如果allowEscapes = TRUE,则包括'  \0 ')可能导致字段的解释在null处终止。它们通常不会出现在文本文件中-参见readBin。

相关文章:

  • Android进阶(二十九) 走近 IntentFilter
  • C语言中,设置Linux中系统时间
  • R语言数据分析(五)
  • hbase最新版本配置属性
  • 十大基础排序算法
  • win系统下安装php8.3版本并配置环境变量的详细教程
  • WPF中样式
  • Kubernetes Prometheus 系列|Prometheus介绍和使用|Prometheus+Grafana集成
  • 2024.2.22
  • RSA加密,解密,加签及验签
  • 解决IntelliJ IDEA 2023版本创建Spring项目时Java只能选择17或21的问题
  • 基于java Springboot实现教务管理系统
  • Window部署SkyWalking
  • Android TextView.setText() 引发的卡顿问题
  • c语言strtok的使用
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • C语言笔记(第一章:C语言编程)
  • eclipse的离线汉化
  • go语言学习初探(一)
  • Javascript设计模式学习之Observer(观察者)模式
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • JS+CSS实现数字滚动
  • Laravel核心解读--Facades
  • oldjun 检测网站的经验
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • SAP云平台里Global Account和Sub Account的关系
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • TCP拥塞控制
  • vuex 笔记整理
  • Web设计流程优化:网页效果图设计新思路
  • 从PHP迁移至Golang - 基础篇
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 简单数学运算程序(不定期更新)
  • 老板让我十分钟上手nx-admin
  • 聊一聊前端的监控
  • 前嗅ForeSpider采集配置界面介绍
  • 让你的分享飞起来——极光推出社会化分享组件
  • 手机端车牌号码键盘的vue组件
  • 微信开放平台全网发布【失败】的几点排查方法
  • 一、python与pycharm的安装
  • 用quicker-worker.js轻松跑一个大数据遍历
  • NLPIR智能语义技术让大数据挖掘更简单
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $jQuery 重写Alert样式方法
  • %check_box% in rails :coditions={:has_many , :through}
  • (C#)一个最简单的链表类
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (学习日记)2024.01.09
  • (转)c++ std::pair 与 std::make
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)