R语言 使用Dplyr进行按行计算的操作

R语言 使用Dplyr进行按行计算的操作

R编程中的dplyr包是用来通过执行操作和转换来对数据进行模拟的。它可以通过以下命令安装到工作空间。

install.packages("dplyr")

使用行创建数据框架

由tibble创建的数据框架包含以表格结构排列的行和列。它说明了数据框架的列的数据类型。它可以在R中使用以下维度创建

# Using the required libraries
library("dplyr")
  
# Declaring a tibble
data = tibble(col1=c(1, 4, 2, 5, 6, 9, 5, 3, 6, 3),
              col2=c("a", "b", "a", "c", "b",
                     "b", "b", "a", "c", "a"),
              col3=c(3, 2, 4, 2, 1, 4, 8, 6, 4, 2))
  
# Arranging data rowwise
data % > % rowwise()

输出

在R语言中使用Dplyr进行按行计算的操作

变异方法的应用

然后应用R中的mutate()方法,使用管道运算符在提供的数据中创建新的列。mutate()方法被用来计算所提供的聚合函数。

语法: mutate(new-col-name = func)

参数:

  • new-col-name – 要添加到数据中的新列
  • func – 要在指定的数据框中应用的函数。

下面的代码片段说明了计算col1和col3数据的平均值的过程,由于没有考虑到group_by方法,所有这些行都返回相同的平均值。

#computing the mean 
data %>%  mutate(mean = mean(c(col1,col3)))

输出

在R语言中使用Dplyr进行按行计算的操作

使用rowwise()和mutate()方法的组合

在下面的代码片段中,rowwise方法与mutate方法合作使用。因此,数据表中col1和col3值的平均值是为每一行单独计算的。例如,表中第1行的1和3的平均值相当于2,因此显示在平均值列下。

# Computing the mean 
data %>%  rowwise() %>% mutate(mean = mean(c(col1,col3)))

输出

在R语言中使用Dplyr进行按行计算的操作

使用总结的方法

summarise方法用于创建一个列中的数据行的值的摘要。它最好是和group_by方法一起使用,输出的数据包含在调用group_by方法的那一列中的每一个组的一行。该方法的语法如下。

语法: Summarise(new-col-name=fun())

参数: fun – 任何可以应用于行的聚合函数

在下面的代码片断中,显示了一个新的列和,它包含了数据中col1和col3值的提交。汇总方法已被用于计算总价值。

# Computing the mean 
data %>% 
  rowwise() %>% 
  summarise(sum = sum(c(col1,col3)))

输出

在R语言中使用Dplyr进行按行计算的操作

将summaryise与group_by结合使用

为了将一个函数应用于数据中的每一个组,我们需要首先根据可用的类对数据进行分组。dplyr包中的group_by()方法将数据分为不同的部分。它的语法如下。

语法: group_by(col1, col2…)

参数: col1, col2,… – 要对数据进行分组的列

在下面的代码片段中,group_by方法与summaryise方法相结合,计算分组后的col3值的总和

例如,数值4在col3参数中出现了3次,在输出中只返回了一次。

# Computing the summary
data %>% 
  rowwise() %>% 
  group_by(col3) %>% 
  summarise(sum = sum(c(col1,col3)))

输出

在R语言中使用Dplyr进行按行计算的操作

使用跨越法

Across方法用于跨越多个数据元素,无论是数据的行还是列。例如,它可以用来检查,并通过各种内置函数(如is.numeric)返回期望的输出。在下面的代码中,所有行的行和已经被计算出来,其中包含满足数字条件的积分值。因此,每一行的col1、col3和col4的值的总和已经被显示出来。

# Applying across
data %>% mutate(sum = rowSums(across(where(is.numeric))))

输出

在R语言中使用Dplyr进行按行计算的操作

使用头部方法

do方法用于执行一项特定的任务,即通过应用head等方法返回数据框的一个子集的值。head(.,1)用于打印group_by方法中包含的每一组的第一行。

# Head method
data %>% group_by(col3) %>% do(head(., 1))

输出

在R语言中使用Dplyr进行按行计算的操作

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程