简介
用于文件读写,其中用于数据读取的函数如下表
读取文件类型 | |
---|---|
read_csv() |
逗号分隔文件 |
read_csv2() |
分号分隔文件 |
read_tsv() |
制表符分隔文件 |
read_delim() |
任意分隔符的文件 |
read_fwf() |
固定宽度的文件 |
read_table() |
使用空白字符来分隔各列 |
read_log() |
网络日志文件 |
这些函数的功能都很单一,其实想专门找一些对应格式的数据练习还是挺不容易的,但readr
似乎也考虑到了这一点,故而提供了一系列的测试数据,可通过readr_example
函数获取其路径。
直接输出readr_example()
可以返回所有可用的测试数据
> library(readr)
> cat(readr_example())
challenge.csv chickens.csv epa78.txt example.log fwf-sample.txt massey-rating.txt mini-gapminder-africa.csv mini-gapminder-americas.csv mini-gapminder-asia.csv mini-gapminder-europe.csv mini-gapminder-oceania.csv mtcars.csv mtcars.csv.bz2 mtcars.csv.zip whitespace-sample.txt
# readr_example中输入测试文件名,可返回路径
> path <- readr_example("chickens.csv")
> cat(path)
D:/CS/R-4.2.2/library/readr/extdata/chickens.csv
read_csv
有了路径,就能以chickens
为例,来演示一下read_csv
的功能
> chickens<-read_csv(path)
点击右上角Environment
中的chickens
,可得到其数据内容为
chicken | sex | eggs_laid | motto | |
---|---|---|---|---|
1 | Foghorn Leghorn | rooster | 0 | That’s a joke, ah say, that’s a joke, son. |
2 | Chicken Little | hen | 3 | The sky is falling! |
3 | Ginger | hen | 12 | Listen. We’ll either die free chickens or we die trying. |
4 | Camilla the Chicken | hen | 7 | Bawk, buck, ba-gawk. |
5 | Ernie The Giant Chicken | rooster | 0 | Put Captain Solo in the cargo hold. |
read_log
上面的函数列表中,除了网络日志之外,对其他函数处理的数据格式描述得十分清晰,为了了解log
格式到底是什么样的,可以打开示例文件夹中的example.log
文件,其内容为
172.21.13.45 - Microsoft\JohnDoe [08/Apr/2001:17:39:04 -0800] "GET /scripts/iisadmin/ism.dll?http/serv HTTP/1.0" 200 3401
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
通过read_log
将其打开
> webLog <- read_log(readr_example("example.log"))
── Column specification ──────────────────────────────────────────────────────────────
cols(
X1 = col_character(),
X2 = col_logical(),
X3 = col_character(),
X4 = col_character(),
X5 = col_character(),
X6 = col_double(),
X7 = col_double()
)
可得到其数据为
~ | X1 | X2 | X3 | X4 | X5 | X6 | X7 |
---|---|---|---|---|---|---|---|
1 | 172.21.13.45 | NA | Microsoft\JohnDoe | 08/Apr/2001:17:39:04 -0800 | GET /scripts/iisadmin/ism.dll?http/serv HTTP/1.0 | 200 | 3401 |
2 | 127.0.0.1 | NA | frank | 10/Oct/2000:13:55:36 -0700 | GET /apache_pb.gif HTTP/1.0 | 200 | 2326 |