dplyr 數據操作 列操作(select / mutate)


在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賦值給列,已達到刪除列的效果。  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM