readr包数据导入与导出
2020-06-14 本文已影响0人
小贝学生信
在R语言入门--第一节(基础知识)笔记中,介绍了
read.table
、write.table
是R中导入、导出的基础、常用的方法。这里再介绍一种备选方法--readr包。据说这比基础模块中的函数速度更快(约快 10 倍),所以适合读取大数据。
一、数据导入
1、各类具体方法
-
read_csv()
读取逗号分隔文件 -
read_csv2()
读取分号分隔文件 -
read_tsv()
读取制表符分隔文件 -
read_delim()
可以读取使用任意分隔符的文件
2、用法
以read_csv()
为例介绍,其它可触类旁通~(假设当前工作目录有一个test.csv文件)
a <- read_csv("test.csv")
b <- read.csv("test.csv")
结果来看二者差不多,但值得注意的是运行 read_csv() 时,它会打印一份数据列说明,给出每个列的名称和类型。
a <- read_csv("test.csv")
键盘输入数据
read_csv("a,b,c
1,2,3
4,5,6")
read_csv("1,2,3\n4,5,6")
键盘输入数据
相关参数
-
skip = n
跳过前 n 行 -
comment = "#"
丢弃所有以 # 开头的行 -
col_names = c()
手动设置命名列名
col_names = FALSE
不要将第一行作为列标题,而是将各列依次标注为 X1 至 Xn -
na = "."
设定使用.
来表示文件中的缺失值
二、数据导出
write_csv()
write_tsv()
write_csv(a, "a.csv")
三、解析向量
- 在导入表格数据后,我们往往希望各列(向量)格式上符合我们的要求。比如数值,日期,因子等。
- readr包里的
parse_
类函数可以“解析”数值、日期型向量、字符串等向量,这里以数值型解析为例说明
数值型
(1)小数符号
大部分小数点都用点表示,可能会碰到用逗号表示的。
- 方法:
parse_double()
函数的 decimal_mark 参数设置,改为正常小数点
parse_double("1,23", locale = locale(decimal_mark = ","))
(2)千分位分隔符号
一般遇到万及以上单位时,常用千位分隔符来便于阅读
- 方法:
parse_number()
函数的grouping_mark参数,改为正常数值,默认分隔符为逗号
parse_number("123.456.789",locale = locale(grouping_mark = "."))
parse_number("123,456,789")
(3)货币符、百分数等
- 如上的
parse_number()
函数也可以忽略数值前后的非数值型字符。这个函数特别适合处理货币和百分比,也可以提取嵌在文本中的数值。 - 值得注意的是应该当存在小数时,也只能提取整数部分。
parse_number("$100")
parse_number("20%")
parse_number("It cost $123.45")