forked from perlatex/R_for_Data_Science
-
Notifications
You must be signed in to change notification settings - Fork 0
/
readr.Rmd
109 lines (68 loc) · 2.88 KB
/
readr.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# 读取数据 {#readr}
在学习R语言过程中,除了使用内置的数据集外,我们更多的需要导入外部数据,
比如实验观察数据、社会调研的数据等等。
在讲如何读取数据到 **R**之前,先介绍下数据科学中的项目管理。
## 数据科学中的文件管理
把项目所需的文件(代码、数据、图片等),放在一个文件夹里
### 文件夹命名
**推荐**我自己的文件夹命名习惯 (项目名+日期),注意这里不要有**中文和空格**, 比如下面风格的就比较好
- `homework20201014`
- `project20201014`
- `Emotional_experiment20201014`
### 项目文件结构
```{r readr-1, out.width='50%', fig.align='left', echo=FALSE}
knitr::include_graphics("./images/Rproject.png")
```
## 读取文件
事实上,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()`
## 范例
```{r readr-2, eval=FALSE, warning=FALSE}
d <- read.table(file= "./data/txt_file.txt", header = TRUE)
```
```{r readr-3, eval=FALSE, warning=FALSE}
load(file = "./data/rda_file.rda")
```
```{r readr-4, eval=FALSE, warning=FALSE}
d <- readRDS(file = "./data/rds_file.rds")
```
```{r readr-5, eval=FALSE, warning=FALSE}
library(readr)
d <- read_csv(file = "./data/csv_file.csv")
```
```{r readr-6, eval=FALSE, warning=FALSE}
url <- "https://raw.githubusercontent.com/perlatex/R_for_Data_Science/master/demo_data/wages.csv"
d <- read_csv(url)
```
```{r readr-7, eval=FALSE, warning=FALSE}
library(readxl)
d <- read_excel("./data/vowel_data.xlsx")
```
```{r readr-8, eval=FALSE, warning=FALSE}
library(haven)
d <- read_dta("./data/cfps2010.dta")
```
## 乱码情形
```{block readr-9, type="danger"}
遇到乱码的情况,这里有个小小的提示:
- 可以先用记事本转换成"UTF-8"编码,
- 或者指定编码格式,比如`read.table(..., fileEncoding = "UTF-8")`,再试试。
```
```{r readr-10, echo = F}
# remove the objects
# rm(list=ls())
#rm(ar, df, die, dt, fac, list1, m, n, vec, x, y)
```
```{r readr-11, echo = F, message = F, warning = F, results = "hide"}
pacman::p_unload(pacman::p_loaded(), character.only = TRUE)
```