R语言--高效操作数据框(dplyr包)(2)

本文是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
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值