如何在R的dplyr包中使用列索引代替列名進行group_by操作?
當我們使用dplyr包的group_by函式時,需要傳入具有類別性質的列名。如果要使用同一列的索引,則需要使用group_by_at函式,其中可以傳入列索引作為引數。
示例1
考慮以下資料框:
x1<−sample(LETTERS[1:4],20,replace=TRUE) x2<−rpois(20,2) df1<−data.frame(x1,x2) df1
輸出
x1 x2 1 D 4 2 D 5 3 B 2 4 D 3 5 C 1 6 C 3 7 D 1 8 D 3 9 B 3 10 B 2 11 C 0 12 C 1 13 A 2 14 B 2 15 B 2 16 C 4 17 D 2 18 A 0 19 D 0 20 B 2
載入dplyr包並使用列索引代替列名:
示例
library(dplyr) df1%>%group_by_at(1)%>%summarise(n=n()) `summarise()` ungrouping output (override with `.groups` argument)
輸出
# A tibble: 4 x 2 x1 n < chr> <int> 1 A 2 2 B 6 3 C 5 4 D 7
示例2
y1<−sample(c("Male","Female"),20,replace=TRUE)
y2<−sample(21:50,20)
df2<−data.frame(y1,y2)
df2輸出
y1 y2 1 Female 29 2 Male 43 3 Female 34 4 Male 49 5 Male 28 6 Female 23 7 Female 27 8 Female 31 9 Female 36 10 Female 41 11 Male 25 12 Female 24 13 Male 30 14 Female 22 15 Female 37 16 Male 42 17 Female 47 18 Male 35 19 Female 32 20 Female 21
使用列索引代替列名來彙總y1:
示例
df2%>%group_by_at(1)%>%summarise(n=n()) `summarise()` ungrouping output (override with `.groups` argument)
輸出
# A tibble: 2 x 2 y1 n <chr> <int> 1 Female 13 2 Male 7
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP