使用 data.table 匯入
data.table
包引入了 fread
功能。雖然它類似於 read.table
,但 fread
通常更快,更靈活,自動猜測檔案的分隔符。
# get the file path of a CSV included in R's utils package
csv_path <- system.file("misc", "exDIF.csv", package = "utils")
# path will vary based on R installation location
csv_path
## [1] "/Library/Frameworks/R.framework/Resources/library/utils/misc/exDIF.csv"
dt <- fread(csv_path)
dt
## Var1 Var2
## 1: 2.70 A
## 2: 3.14 B
## 3: 10.00 A
## 4: -7.00 A
引數 input
是一個表示以下內容的字串:
- 檔名( 例如
filename.csv
), - 作用於檔案的 shell 命令( 例如
grep 'word' filename
),或 - 輸入本身( 例如
input1, input2 \n A, B \n C, D
)。
fread
返回類 data.table
的一個物件,它繼承自 data.frame
類,適用於 data.table 對 []
的使用。要返回普通的 data.frame,請將 data.table
引數設定為 FALSE
:
df <- fread(csv_path, data.table = FALSE)
class(df)
## [1] "data.frame"
df
## Var1 Var2
## 1 2.70 A
## 2 3.14 B
## 3 10.00 A
## 4 -7.00 A
筆記
fread
與read.table
沒有相同的選項。一個缺少的論點是na.comment
,如果原始檔包含#
,可能導致不需要的行為。fread
僅使用"
作為quote
引數。fread
使用少量(5)行來猜測變數型別。