R读取中文字段的正确姿势
readr
软件包
读取数据
readr
是大神Hadley Wickham开发的用于读取数据文件的软件包,可以读取多个格式的文件,如 .csv
, .txt
等,而且其提供了丰富的调用函数。
对于一般的数据文件,我通常是使用另外一个包data.table
里面的fread
,这是因为该函数读取大容量的数据文件速度较快,而且直接生成data.table
格式,方便之后的数据清理。但是,该函数由于接口限制,暂时还无法处理其他格式的文件,而且对多语言的支持也比较弱,目前还无法用来读取包含中文字段的文件。因此,我只能使用read_csv
来读取在2010年的期货交易数据,因为这份数据的表头字段是中文。
功能介绍
目前我主要还是使用readr
当中的函数,read_csv
。具体的函数说明,可以通过帮助来获得。
|
|
|
|
|
|
read_csv(file, col_names = TRUE, col_types = NULL,locale = default_locale(), na = c("", “NA”), quoted_na = TRUE, quote = “"”, comment = “”, trim_ws = TRUE, skip = 0, n_max = Inf, guess_max = min(1000, n_max), progress = show_progress())
这里有几个参数需要设置:
- 首先设置系统的默认编码格式,
Sys.setlocale("LC_ALL", 'en_US.UTF-8')
- 使用
guess_encodng(file)
来获取文件的编码格式 - 利用
locale=locale(encoding = 'GB18030'))
来解码中文字段 - 同时,我们还可以使用
iconv(x, from, to)
来转码
代码演示
|
|
错误姿势
没有设置编码格式
|
|
正确姿势
|
|