子集的选取——基于tidyverse
准备工作
(1)安装tidyverse,用于数据处理
install.packages("tidyverse")
(2)运用R及相关包库及帮助文件进行学习
?filter # 查看filter帮助文件
?slice # 查看slice帮助文件
??select # 查看select帮助文件,注意,范围过大
2.基础知识
管道操作
数据集经常需要选行子集、选列子集、排序、定义新变量、横向合并、长宽转换等操作,而且经常会用若干个连续的操作分步处理。magrittr包的管道运算符 %>% 实现这样的操作流程。
比如,变量 x 先用函数 f(x)进行变换,再用函数 g(x) 进行变换,一般应该写成 g(f(x)),用%>% 运算符,可以表示成 x %>% f() %>% g()。
再比如 h(g(f(x))) 可以写成 x %>% f() %>% g() %>% h()。这样的表达更符合处理发生的次序,而且插入一个处理步骤也很容易。
(1) %T% 运算符,x %T% f() 返回 x 本身而不是用 f() 修改后的返回值 f(x),这在中间步骤需要显示或者绘图但是需要进一步对输入数据进行处理时有用。
(2)%$%运算符,此运算符的作用是将左运算元的各个变量(这时左运算元是数据框或列表)暴露出来,可以直接在右边调用其中的变量,类似于 with() 函数的作用。
(3)%<>% 运算符,用在管道链的第一个连接,可以将处理结果存入最开始的变量中。
1 选取行子集
1.1 slice :根据行特征选取行子集
Usage
library(tidyverse) #先载入tidyverse
slice_head() and slice_tail() #select the first or last rows.
slice_sample() #randomly selects rows.
slice_min() and slice_max() #select rows w