R语言 用Dplyr包在R中操纵数据

R语言 用Dplyr包在R中操纵数据

在这篇文章中,让我们讨论在R编程语言中操作数据。

为了处理数据,R提供了一个名为dplyr的库,其中包括许多内置的方法来处理数据。因此,要使用数据处理功能,首先需要使用 _ library(dplyr_ )一行代码导入dplyr包。下面是dplyr包中的一些数据处理函数的列表。

函数名称 描述
filter() 产生一个数据框架的子集。
distinct() 删除数据框中重复的行。
arrange() 对数据框中的行进行重新排序
select() 在一个数据框架的必要列中产生数据
rename() 重命名变量名称
mutate() 创建新的变量而不丢弃旧的变量。
transmute() 通过丢弃旧的变量来创建新的变量。
summarize() 给出总结的数据,如平均数、总和等。

filter()方法

filter()函数用于产生满足filter()方法中指定条件的数据子集。在条件中,我们可以使用条件运算符、逻辑运算符、NA值、范围运算符等来过滤掉数据。filter()函数的语法如下所示

filter(dataframeName, condition)

例子

在下面的代码中,我们使用filter()函数从 “stats “数据框中获取了得分超过100的球员的数据。

# import dplyr package
library(dplyr)
 
# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, 19),
                wickets=c(17, 20, NA, 5))
 
# fetch players who scored more
# than 100 runs
filter(stats, runs>100)

输出

  player runs wickets
1      B  200      20
2      C  408      NA

distinct()方法

distinct()方法从数据框中删除重复的行,或者基于指定的列。distinct()方法的语法如下所示

distinct(dataframeName, col1, col2,..., .keep_all=TRUE)

例子

在这个例子中,我们使用distinct()方法从数据框中移除重复的行,同时也基于指定的列移除重复的行。

# import dplyr package
library(dplyr)
 
# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D', 'A', 'A'),
                runs=c(100, 200, 408, 19, 56, 100),
                wickets=c(17, 20, NA, 5, 2, 17))
 
# removes duplicate rows
distinct(stats)
 
#remove duplicates based on a column
distinct(stats, player, .keep_all = TRUE)

输出

  player runs wickets
1      A  100      17
2      B  200      20
3      C  408      NA
4      D   19       5
5      A   56       2
  player runs wickets
1      A  100      17
2      B  200      20
3      C  408      NA
4      D   19       5

arrange()方法

在R语言中,arrange()方法被用来根据指定的列来排列行。arrange()方法的语法规定如下

arrange(dataframeName, columnName)

例子

在下面的代码中,我们使用arrange()函数根据运行情况从低到高对数据进行排序。

# import dplyr package
library(dplyr)
 
# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, 19),
                wickets=c(17, 20, NA, 5))
 
# ordered data based on runs
arrange(stats, runs)

输出

  player runs wickets
1      D   19       5
2      A  100      17
3      B  200      20
4      C  408      NA

select()方法

select()方法用于通过在select()方法中指定所需的列名,将所需的列提取为一个表格。select()方法的语法如下所示

select(dataframeName, col1,col2,...)

例子

在下面的代码中,我们只用select()方法获取了球员、门将列的数据。

# import dplyr package
library(dplyr)
 
# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, 19),
                wickets=c(17, 20, NA, 5))
 
# fetch required column data
select(stats, player,wickets)

输出

  player wickets
1      A      17
2      B      20
3      C      NA
4      D       5

rename()方法

rename()函数是用来改变列名的。这可以通过下面的语法来完成

rename(dataframeName, newName=oldName)

例子

在这个例子中,我们将统计学数据框架中的列名 “runs “改为 “runs_scored”。

# import dplyr package
library(dplyr)
 
# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, 19),
                wickets=c(17, 20, NA, 5))
 
# renaming the column
rename(stats, runs_scored=runs)

输出

  player runs_scored wickets
1      A         100      17
2      B         200      20
3      C         408      NA
4      D          19       5

mutate()和transmute()方法

这些方法用于创建新的变量。mutate()函数创建新的变量,但不放弃旧的变量,而transmute()函数则放弃旧的变量并创建新的变量。这两种方法的语法如下所述

mutate(dataframeName, newVariable=formula)

transmute(dataframeName, newVariable=formula)

例子

在这个例子中,我们使用mutate()和transmute()方法创建了一个新列avg。

# import dplyr package
library(dplyr)
 
# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, 19),
                wickets=c(17, 20, 7, 5))
 
# add new column avg
mutate(stats, avg=runs/4)
 
# drop all and create a new column
transmute(stats, avg=runs/4)

输出

  player runs wickets    avg
1      A  100      17  25.00
2      B  200      20  50.00
3      C  408       7 102.00
4      D   19       5   4.75
     avg
1  25.00
2  50.00
3 102.00
4   4.75

在这里,mutate()函数为现有的数据框架添加了一个新的列,但没有删除旧的列,而transmute()函数创建了一个新的变量,但删除了所有的旧列。

summarize()方法

使用summaryize方法,我们可以通过使用sum()、mean()等聚合函数对数据框中的数据进行总结。summarize()方法的语法规定如下

summarize(dataframeName, aggregate_function(columnName))

例子

在下面的代码中,我们使用summaryize()方法展示了运行列中的汇总数据。

# import dplyr package
library(dplyr)
 
# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, 19),
                wickets=c(17, 20, 7, 5))
 
# summarize method
summarize(stats, sum(runs), mean(runs))

输出

  sum(runs) mean(runs)
1       727     181.75

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程