R语言学习之dplyr包

dplyr包被称为是十大R语言必学包之一,下面简单介绍包内的常用函数,参考来自dplyr包文档:

1.filter(df, condition1, condition2,..., .dots)

过滤函数,df为目标数据框,下面我都用df指代目标数据框,就不再赘述,后面跟的都是过滤条件,最后面那个.dots是一个类似于传递柯里化函数的东西,可以单独讲一篇了。。这里就不展开了,后面的每一个函数都可以加入这个参数,不过既然都不讲了,后面就不会再加上,但这里还是提一下。过滤后返回新数据框。

2.slice(df, rownum)

按行数选取数据的函数,rownum是一个numeric类型的向量。

3.arrange(df, colname1, colname2,...); arrange(df, desc(colname1, colname2,...),...)

排序函数,默认升序,升序优先根据列名输入排序,可以使用desc使用降序,desc里可以传入多个列名,但实际上只会对第一个做降序并不会报错,估计是个bug。

4.select(df, colname1, colname2, ...); select(df, colname1 : colname2, ...); select(df, -(colname1 : colname2, ...)); select(df, colname1= colname2)

列选取函数,可以一个个输入列名,也可以用:号,函数会自动识别并冒号前后的列对应的列数,并进行范围选取,加上负号后就变成列去除了。同时可以在提取过程中重命名列名(最后一个表达式)。同时这个函数还支持内嵌一系列的判别函数,如start_with()、end_with()、contains()等。在往前还可以将select函数套嵌在distinct()内,返回每行都是唯一数字的数据框。

5.mutate(df, newcolname = func(oldcol), ...); transmutate(df, newcolname = func(oldcol), ...);

添加新列的函数,跟base包里面的transform产生一样的结果,不一样的是这里即使新列还没有生成,只要它排在后面参数的前面,它就能被后面的新列生成过程引用。如果只想要生成的新的列,使用transmutate函数。

6.summarise(df, newcol = func(colname, ...), ...)

总结函数,返回一个新的单行的数据框,内容为func产生的内容。

7.sample_n(df, numeric); sample_frac(df, numeric);

抽样函数,第一个随机抽出指定数目的样本,第二个随机抽出指定总行数百分比的样本,默认不放回,可以声明replacement = T改为放回抽样。

8.group_by(df, colname1, colname2, ...)

强大的函数,对目标数据框使用这个函数后,会对目标列进行分装,后面应用函数到这个数据框的时候,函数输入不再是一整列,而是分装后的每个部分,这个分装信息并不保存在列内,所以即使数据框重新构造,也能传递过去。group后的列,在未指明参数的计算时,会逐步由最后一个参数向前删减,每进行一次计算删减一次。

9.一些小函数:

n(),统计一个group里面有多少样本

n_distinct(x),一个group里面有多少唯一样本,基于group的那列的变量

first(x),相当于x(1)

last(x),相当于x(length(x))

nth(x, n),相当于x(n)

10.链函数: %>%

如果将函数彼此套嵌在一起,将会非常难阅读,因为套嵌函数是从里到进行的(类似于SQL),dplyr提供了链函数,从而解决了一步步声明变量传递和函数套嵌的问题,让函数链阅读起来非常清晰。

你可能感兴趣的:(R语言,r语言,dplyr,学习,数据分析)