任务8:data import
- 数据读取,简单概括了以下三个特点:
- 根据数据类型的不同,选择不同的函数
- 根据数据的大小不同,选择不同的函数
- 根据时本地还是网络爬取,选择不同的函数
- 那么R中有哪些常见的数据格式呢?及其对应读取的基础函数呢?
- .txt: read.table()【读取空格/t分隔文件】
- .csv: 基础包的read.csv(),或者readr::read_csv()【读取逗号分隔文件】
- .xls or .xlsx: readxl::read_excel()【读取excel表格】
- Rdata/Rda: load()【读取Rdata】
- .rds: readRDS或者readr::read_rds【与Rdata类似,但是Rdata可以一次保存读取多个对象,rds一次只能操作一个对象】
- readr是一个常用的数据读取的包,简单介绍一下常用函数
- read_csv(): 读取逗号comma分隔文件
- read_csv2(): 读取分号semicolon分隔文件
- read_tsv(): 读取空格分隔文件
- read_delim():读取任何分隔文件(any delimiter)
- read_fwf():读取固定宽度文件,你可以指定读取文件的宽度
- 这些函数都有相同的语法,可以先熟悉一个,其他就慢慢都熟悉了
- 下面以read_csv举例,可以自动打印行名及其类型 ``` x <- read_csv(“path/file.csv”, skip = 2, comment = “#”, col_names = FALSE, na = “.”)
x <- read_csv(“path/file.csv”, skip = 2, comment = “#”, col_names = c(“age”, “grade”)
8. 参数,结合上面举例的代码解读- file/file: 路径和文件名- skip: 跳过前2行,比如有的数据前几行是metadata时,就可以skip- comment:去除带#注释的行- col_names:是否以第一行作为行名,false表示不,也可以自定义colnames见line3- na: 将数据中出现的na值赋值为".",用来表示缺失值3. readr包与基础函数中的read.csv有什么区别呢?1. readr更快(是base基础函数的~10倍)1. 输出的格式是tibbels,不用担心将字符转为因子,或者行列名信息变换不全1. 与base包相比,更稳定4. 根据数据大小不同选择函数1. 体量很大的数据时,推荐data.table::fread()5. 根据本地/网络选择函数1. 以上介绍的函数,即可针对针对本地,也可结合网络爬取读取函数1. 网络爬取数据常用的包:
library(RCurl) library(XML) library(rvest)
- rvst::read_html() 读取html文档的函数,其输入可以是线上的url,也可以是本地的html文件,甚至是包含html的字符串也可以- r爬数据我也不太会,这里就略啦,大家需要的时候可以谷歌包的用法试试看。。。**任务9: tibbles和data.frame的区别**1. tibble是啥:1. 也是data.frame, 但是使用更方便,主要服务tidyverse包。可以理解美化后的data.frame1. 优点:1. 不用担心将字符转为因子,或者行列名信息变换不全1. 可以直接打印数据的基本信息,打印前10行的所有列(适应窗口的大小),并且会报告对应列的名字和类型1. 与tidyverse更兼容2. 常用语tibble相关函数- as_tibble
library(tidyverse) as_tibble(iris)
A tibble: 150 × 5
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa 2 4.9 3 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 7 4.6 3.4 1.4 0.3 setosa 8 5 3.4 1.5 0.2 setosa 9 4.4 2.9 1.4 0.2 setosa 10 4.9 3.1 1.5 0.1 setosa… with 140 more rows
- 创建tibble: 和创建data.frame一样的方法
tibble(x = 1:3,
2021.12.1
I one
