本文是R语言–高效操作数据框(dplyr包)系列的第二篇,介绍了列重命名、行筛选、行排序、行去重、数据合并等常见操作。
列重命名 rename
rename用来给列重命名,对于复杂情况的重命名特别有效。其中,全部列重命名采用基础方法names实现。
# 数据
tbl_df <- tibble(var1=1:4,var2=2:5,label=c("a","b","a","c"))
- 单个模式
# 引用方式
tbl_df %>% rename(new_var1=var1,new_var2=var2)
## # A tibble: 4 x 3
## new_var1 new_var2 label
## <int> <int> <chr>
## 1 1 2 a
## 2 2 3 b
## 3 3 4 a
## 4 4 5 c
# 位置方式
tbl_df %>% rename(new_var1=1,new_var2=2)
## # A tibble: 4 x 3
## new_var1 new_var2 label
## <int> <int> <chr>
## 1 1 2 a
## 2 2 3 b
## 3 3 4 a
## 4 4 5 c
- 批量模式
# 全部列
tbl_df %>% rename_all(paste,"new",sep="_")
## # A tibble: 4 x 3
## var1_new var2_new label_new
## <int> <int> <chr>
## 1 1 2 a
## 2 2 3 b
## 3 3 4 a
## 4 4 5 c
# 条件列
tbl_df %>% rename_if(is.character,paste,"new",sep="_")
## # A tibble: 4 x 3
## var1 var2 label_new
## <int> <int> <chr>
## 1 1 2 a
## 2 2 3 b
## 3 3 4 a
## 4 4 5 c
# 指定列
tbl_df %>% rename_at(c("var1","var2"),paste,"new",sep="_")
## # A tibble: 4 x 3
## var1_new var2_new label
## <int> <int> <chr>
## 1 1 2 a
## 2 2 3 b
## 3 3 4 a
## 4 4 5 c
# 基础方法全部列重命名
tbl_df %>% `names<-`(c("new_var1","new_var2","new_label"))
## # A tibble: 4 x 3
## new_var1 new_var2 new_label
## <int> <int> <chr>
## 1 1 2 a
## 2 2 3 b
## 3 3 4 a
## 4 4 5 c
行筛选 filter
filter函数用来对数据框行进行条件筛选,选择出数据框的子集。
# 数据
tbl_df <- tibble(var1=1:4,var2=2:5,var3=3:6)
- 单个模式
tbl_df %>% filter(var1>1) # 单条件
## # A tibble: 3 x 3
## var1 var