使用 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)行来猜测变量类型。