當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。