R语言的包和数据处理
1.png本期课程补充一点:
列名为数字的,data.frame会在前面添加一个”X“,这个是由于R1.90版本之前的不支持,如果觉得难看需要去掉可以添加check_names=F即可。不过不推荐列名为数字,在引用中需要频繁的加引号注明字符。
再更正一点:
** complete并不是填空行的命令!!!**
它有fill=list()的选项可以把某一列的空值填上,但是这个命令主要是两两组合数字,发现空值。这个主要用于算两两间的相关系数中会用到。
比如我有一组这样的数据
> c
a b va
1 a e 0.1
2 b f 0.5
3 c g 0.9
不是用cor得到而是自己有一些相关性数据
这之后用下面这个命令
> complete(c,a,b)
# A tibble: 9 x 3
a b va
<fct> <fct> <dbl>
1 a e 0.1
2 a f NA
3 a g NA
4 b e NA
5 b f 0.5
6 b g NA
7 c e NA
8 c f NA
9 c g 0.9
比如,NA就是无相关,这时候填充:
> complete(c,a,b,fill=list(va=0))
# A tibble: 9 x 3
a b va
<fct> <fct> <dbl>
1 a e 0.1
2 a f 0
3 a g 0
4 b e 0
5 b f 0.5
6 b g 0
7 c e 0
8 c f 0
9 c g 0.9
=-=
准备工作
下载对应cheatsheet
tidyr是一个数据处理的基本的包,install.packages("tidyr") 安装tidyr包
数据框
可以直接用data.frame定义,也可以通过read.csv获得
Tidy Data
变量一列,key一列,value一列
tidyr包
Reshape data
-
gather()
把数据由数据框变为Tidy data
gather(data,keys,key_name,value_name) -
spread()
把Tidy data还原
spread(data,key_column,value_column)
处理缺失数据
处理方式
- 删除整行
drop_na(data,col) - 根据上下文填一个数
fill(data,col) - 同一列空值填一个数
replace_na(data,list(col=2))
Expand Tables
-
组合两列的数,并可以设置空值补全
complete(data, fill=list()) -
列出每列值所有可能的组合
expand(data,x1,x2)
网友评论
这句话,我的本意应该是填空值