当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R read.DIF 从电子表格输入数据


R语言 read.DIF 位于 utils 包(package)。

说明

读取数据交换格式 (DIF) 的文件并从中创建数据帧。 DIF 是一种数据矩阵格式,例如单个电子表格。

用法

read.DIF(file, header = FALSE,
         dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
         row.names, col.names, as.is = !stringsAsFactors,
         na.strings = "NA", colClasses = NA, nrows = -1,
         skip = 0, check.names = TRUE, blank.lines.skip = TRUE,
         stringsAsFactors = FALSE,
         transpose = FALSE, fileEncoding = "")

参数

file

要从中读取数据的文件的名称、connection 或完整的 URL。

名称 "clipboard" 也可以在 Windows 上使用,在这种情况下,read.DIF("clipboard") 将在 Windows 剪贴板中查找 DIF 格式条目。

header

一个逻辑值,指示电子表格的第一行是否包含变量名称。如果缺失,则根据文件格式确定该值:当且仅当第一行仅包含字符值且左上角单元格为空时,header 设置为 TRUE

dec

文件中用于小数点的字符。

numerals

指示如何转换数字的字符串,如果转换为双精度会失去准确性,请参阅 type.convert

row.names

行名称向量。这可以是给出实际行名称的向量,或者给出包含行名称的表列的单个数字,或者给出包含行名称的表列的名称的字符串。

如果存在标题且第一行包含的字段数少于列数,则输入中的第一列将用作行名称。否则,如果 row.names 缺失,则行将被编号。

使用row.names = NULL 强制行编号。

col.names

变量的可选名称向量。默认情况下使用 "V" 后跟列号。

as.is

如果 colClasses 没有另外指定,则控制字符变量(只要它们不转换为逻辑、数字或复数)到因子的转换。它的值可以是逻辑向量(如果需要,可以回收值),也可以是数字或字符索引向量,指定哪些列不应转换为因子。

注意:在之前的版本中R2.12.1,标记为字符类型的单元格被转换为逻辑,数字或复杂的使用type.convertread.table.

注意:要抑制所有转换(包括数字列的转换),请设置 colClasses = "character"

请注意,as.is 是按列(而不是每个变量)指定的,因此包括行名称列(如果有)以及要跳过的任何列。

na.strings

将被解释为 NA 值的字符串字符向量。空白字段也被视为逻辑、整数、数字和复杂字段中的缺失值。

colClasses

特点。为列假定的类向量。根据需要回收,或者如果字符向量已命名,则未指定的值将被视为 NA

可能的值为 NA(当使用 type.convert 时)、"NULL"(当跳过列时)、原子向量类之一(逻辑、整数、数字、复数、字符、原始)或 "factor""Date""POSIXct" 。否则,需要有一个 as 方法(来自包 methods )用于从 "character" 转换为指定的正式类。

请注意,colClasses 是按列(而不是每个变量)指定的,因此包括行名称列(如果有)。

nrows

要读入的最大行数。负值将被忽略。

skip

开始读取数据之前要跳过的数据文件行数。

check.names

合乎逻辑的。如果TRUE,则检查 DataFrame 中变量的名称以确保它们是语法上有效的变量名称。如有必要,它们会被调整(通过 make.names ),并确保没有重复。

blank.lines.skip

逻辑:如果输入中的 TRUE 空行被忽略。

stringsAsFactors

逻辑:字符向量应该转换为因子吗?

transpose

逻辑,指示是否应调换行和列解释。已知 Microsoft 的 Excel 会生成(不符合标准的)DIF 文件,需要 transpose = TRUE 才能正确读取。

fileEncoding

字符串:如果非空,则声明文件(不是连接或剪贴板)上使用的编码,以便可以重新编码字符数据。请参阅 file 帮助的“编码”部分、“R 数据导入/导出”手册和“注释”。

包含文件中数据表示的数据帧 (data.frame)。当返回 0 行数据帧时,除非指定 col.names,否则空输入是错误的:同样,如果 header = TRUE 产生 0 行数据帧,则仅给出标题行。

注意

as.iscolClasses 中引用的列包括行名称列(如果有)。

如果将 colClasses 指定为六个原子向量类之一,则将使用更少的内存。

例子

## read.DIF() may need transpose = TRUE for a file exported from Excel
udir <- system.file("misc", package = "utils")
dd <- read.DIF(file.path(udir, "exDIF.dif"), header = TRUE, transpose = TRUE)
dc <- read.csv(file.path(udir, "exDIF.csv"), header = TRUE)
stopifnot(identical(dd, dc), dim(dd) == c(4,2))

作者

R Core; transpose option by Christoph Buser, ETH Zurich

参考

The DIF format specification can be found by searching on http://www.wotsit.org/; the optional header fields are ignored. See also https://en.wikipedia.org/wiki/Data_Interchange_Format.

The term is likely to lead to confusion: Windows will have a ‘Windows Data Interchange Format (DIF) data format’ as part of its WinFX system, which may or may not be compatible.

也可以看看

R 数据导入/导出手册。

scantype.convertread.fwf 用于读取固定宽度格式的输入; read.table; data.frame

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Data Input from Spreadsheet。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。