在R中,我們通常需要對數據列進行各種各樣的操作,比如選取某一列、重命名某一列等。
dplyr中的select函數子在數據列的操作上也同樣表現了它的簡潔性,而且各種操作眼花繚亂。
select(.data, ...)
參數主要在於如何添加條件。配合select()進行使用的函數有:
starts_with()
ends_with()
contains()
matches()
num_range()
one_of()
everything()
配合以上這些函數,使得select()的使用更加的靈活。
除了選擇列以外,我們還可以添加一列,使用函數mutate()或transmute()
mutate(.data, ...)
transmute(.data, ...)
下面來看些具體的例子
library(dplyr)
x<-data.frame(id=1:6,
name=c("wang","zhang","li","chen","zhao","song"),
shuxue=c(89,85,68,79,96,53),
yuwen=c(77,68,86,87,92,63),
shengwu=c(85,68,78,68,98,96))
x

select(x,name)

選取單列
select(x,starts_with("s"))

選取包好以“s”開頭的列
select(x,ends_with("e"))

選取以“e”結尾的列。
select(x,matches(".e."))

匹配中間含有“e”的列
select(x,contains("e"))

匹配所有名稱中包含“e”的列
select(x,-name)

在名字前面加個“-”,表示出了這一列以外,其他的列都顯示
select(x,1:3)

也可以直接用列的編號表示要選擇的列
select(x,mz=name)

選擇列的時候,同時對列名進行重命名
select(x,cmm=starts_with("s"))

同樣的可以對多列進行重命名,並選擇
select(x,name,everything())

可以對數據進行排序,列較多的情況下把不需要排序的列用evything()直接列出。
下面使用mutate()函數對數據進行增加列。
mutate(x,yingyu=shuxue*1.2)

transmute(x,yingyu=shuxue*1.2)

可以看到,使用matate是在原來列的基礎上增加一列,而使用transmute是新建一個數據框。
mutate(x,shuxue=NULL)

除了,增加列以外還可以把NULL賦值給列,已達到刪除列的效果。
