第 5 章 读取数据

在学习R语言过程中,除了使用内置的数据集外,我们更多的需要导入外部数据, 比如实验观察数据、社会调研的数据等等。 在讲如何读取数据到 R之前,先介绍下数据科学中的项目管理。

5.1 数据科学中的文件管理

把项目所需的文件(代码、数据、图片等),放在一个文件夹里

5.1.1 文件夹命名

推荐我自己的文件夹命名习惯 (项目名+日期),注意这里不要有中文和空格, 比如下面风格的就比较好

  • homework20201014
  • project20201014
  • Emotional_experiment20201014

5.1.2 项目文件结构

5.2 读取文件

事实上,R语言提供了很多读取数据的函数。下表列出了常见文件格式的读取方法

文件格式 R 函数
.txt read.table()
.csv read.csv() and readr::read_csv()
.xls and .xlsx readxl::read_excel() and openxlsx::read.xlsx()
.sav(SPSS files) haven::read_sav() and foreign::read.spss()
.Rdata or rda load()
.rds readRDS() and readr::read_rds()
.dta haven::read_dta() and haven::read_stata()
.sas7bdat(SAS files) haven::read_sas()
Internet download.file()

5.3 范例

d <- read.table(file= "./data/txt_file.txt", header = TRUE)
load(file = "./data/rda_file.rda")
d <- readRDS(file = "./data/rds_file.rds")
library(readr)
d <- read_csv(file = "./data/csv_file.csv") 
url <- "https://raw.githubusercontent.com/perlatex/R_for_Data_Science/master/demo_data/wages.csv"
d <- read_csv(url)
library(readxl)
d <- read_excel("./data/vowel_data.xlsx")
library(haven)
d <- read_dta("./data/cfps2010.dta")

5.4 乱码情形

遇到乱码的情况,这里有个小小的提示:

  • 可以先用记事本转换成“UTF-8”编码,
  • 或者指定编码格式,比如read.table(…, fileEncoding = “UTF-8”),再试试。