任务8:data import

  1. 数据读取,简单概括了以下三个特点:
    1. 根据数据类型的不同,选择不同的函数
    2. 根据数据的大小不同,选择不同的函数
    3. 根据时本地还是网络爬取,选择不同的函数
  2. 那么R中有哪些常见的数据格式呢?及其对应读取的基础函数呢?
    1. .txt: read.table()【读取空格/t分隔文件】
    2. .csv: 基础包的read.csv(),或者readr::read_csv()【读取逗号分隔文件】
    3. .xls or .xlsx: readxl::read_excel()【读取excel表格】
    4. Rdata/Rda: load()【读取Rdata】
    5. .rds: readRDS或者readr::read_rds【与Rdata类似,但是Rdata可以一次保存读取多个对象,rds一次只能操作一个对象】
  1. readr是一个常用的数据读取的包,简单介绍一下常用函数
    1. read_csv(): 读取逗号comma分隔文件
    2. read_csv2(): 读取分号semicolon分隔文件
    3. read_tsv(): 读取空格分隔文件
    4. read_delim():读取任何分隔文件(any delimiter)
    5. read_fwf():读取固定宽度文件,你可以指定读取文件的宽度
    6. 这些函数都有相同的语法,可以先熟悉一个,其他就慢慢都熟悉了
    7. 下面以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”)

  1. 8. 参数,结合上面举例的代码解读
  2. - file/file: 路径和文件名
  3. - skip: 跳过前2行,比如有的数据前几行是metadata时,就可以skip
  4. - comment:去除带#注释的行
  5. - col_names:是否以第一行作为行名,false表示不,也可以自定义colnamesline3
  6. - na: 将数据中出现的na值赋值为".",用来表示缺失值
  7. 3. readr包与基础函数中的read.csv有什么区别呢?
  8. 1. readr更快(是base基础函数的~10倍)
  9. 1. 输出的格式是tibbels,不用担心将字符转为因子,或者行列名信息变换不全
  10. 1. base包相比,更稳定
  11. 4. 根据数据大小不同选择函数
  12. 1. 体量很大的数据时,推荐data.table::fread()
  13. 5. 根据本地/网络选择函数
  14. 1. 以上介绍的函数,即可针对针对本地,也可结合网络爬取读取函数
  15. 1. 网络爬取数据常用的包:

library(RCurl) library(XML) library(rvest)

  1. - rvst::read_html() 读取html文档的函数,其输入可以是线上的url,也可以是本地的html文件,甚至是包含html的字符串也可以
  2. - r爬数据我也不太会,这里就略啦,大家需要的时候可以谷歌包的用法试试看。。。
  3. **任务9: tibblesdata.frame的区别**
  4. 1. tibble是啥:
  5. 1. 也是data.frame 但是使用更方便,主要服务tidyverse包。可以理解美化后的data.frame
  6. 1. 优点:
  7. 1. 不用担心将字符转为因子,或者行列名信息变换不全
  8. 1. 可以直接打印数据的基本信息,打印前10行的所有列(适应窗口的大小),并且会报告对应列的名字和类型
  9. 1. tidyverse更兼容
  10. 2. 常用语tibble相关函数
  11. - 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

  1. - 创建tibble: 和创建data.frame一样的方法

tibble(x = 1:3,

  • y = 2:4,
  • z = x*y+1)

    A tibble: 3 × 3

    x y z 1 1 2 3 2 2 3 7 3 3 4 13 ```

2021.12.1
I one