搜索
查看: 48|回复: 0

[R] 使用forcats处理因子

[复制链接]

14

主题

26

帖子

135

积分

注册会员

Rank: 2

积分
135
发表于 2018-11-7 21:09:03 | 显示全部楼层 |阅读模式
#第十一章 使用forcats处理因子
##什么是因子?
说句实话,书上推荐的关于因子更深一步的了解的文章,我看了。但我实在是没看懂啊。所以就是按照大神那样简单的理解就好了!因子是一种分类变量。
###准备工作
[AppleScript] 纯文本查看 复制代码
require()和library()哪种更好?之前学习Y叔代码的时候发现他用的是require。

```
[AppleScript] 纯文本查看 复制代码
library(tidyverse)

time(library(tidyverse))

[1]  1 16  1
time(require(tidyverse))
[AppleScript] 纯文本查看 复制代码

[1] 1 1 1
[AppleScript] 纯文本查看 复制代码
library(forcats)

```
感觉从时间上来讲,这个require还是蛮快的!require不返回Attaching packages信息。
###创建因子
这里举了一个排列月份的例子,在一个字符型变量中,字符是特定的。如果,在输入一个错误的月份条件下,想调取一个正确的月份是根本不可能的。此外,你的月份也无法进行排序。
**随着学习的深入,我只能把我个人的体会写在上面,可能理解的不一定对,仅供参考!**
需要因子的地方是两个地方,首先,一个字符型变量起到了一个分类变量的作用。在书中举了一个例子
```
[AppleScript] 纯文本查看 复制代码
head(gss_cat)

# A tibble: 6 x 9

   year marital      age race  rincome    partyid     relig     denom     tvhours

  <int> <fct>      <int> <fct> <fct>      <fct>       <fct>     <fct>       <int>

1  2000 Never mar~    26 White $8000 to ~ Ind,near r~ Protesta~ Southern~      12

2  2000 Divorced      48 White $8000 to ~ Not str re~ Protesta~ Baptist-~      NA

3  2000 Widowed       67 White Not appli~ Independent Protesta~ No denom~       2

4  2000 Never mar~    39 White Not appli~ Ind,near r~ Orthodox~ Not appl~       4

5  2000 Divorced      25 White Not appli~ Not str de~ None      Not appl~       1

6  2000 Married       25 White $20000 - ~ Strong dem~ Protesta~ Southern~      NA

```
我们很明显看出不同变量的属性(红色的) 如果不知道啥意思,往前翻翻就知道了!


count()函数可以看出数据的水平,其实这个水平通俗一点就是一个变量的分类!比如:人的高、矮、胖、瘦!四个水平。。。为什么今天那么喜欢用感叹号
fct_recode函数可以作为一个修改因子水平的,简单理解下是高+矮=身高...


```
[AppleScript] 纯文本查看 复制代码
x <- factor(c("apple", "bear", "banana", "dear"))

fct_recode(x, fruit = "apple", fruit = "banana")

Levels: fruit bear dear
```
还有一个fct_collapse与其大致相同,这里不加多说了!




上一篇:R for data science 第四章第六章
下一篇:慧美——R for data science 第五章
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树    

GMT+8, 2018-11-16 22:49 , Processed in 0.030069 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.