使用rowSums在dplyr中突变列

使用rowSums在dplyr中突变列

在这篇文章中,我们将讨论如何使用R编程语言中的dplyr包来突变数据框架中的列。

安装

该包可以通过以下命令下载并安装在R工作空间中。

安装命令 - install.packages(“dplyr”)

加载命令 - library(“dplyr”)

使用的函数

  • mutate(): 这个包中的mutate()方法增加了新的变量并保留了现有的变量。mutate方法不影响数据框架的行数。然而,根据在数据框架中创建的组,可能会发生重新分组。数据框架的属性也会被保留。

语法

mutate (new-col-name = rowSums())

  • rowSums(): rowSums()方法计算一个数字数组、矩阵或数据框架的每一行的总和。我们可以在这个方法中选择特定的行来计算总和。因为,默认创建的矩阵的行和列的名称是使用X1, X2…等标签,我们可以使用这些名称来指定它们。这些行可以用select_方法来选择。

语法

select_(. , col-names. )

参数

  • col-names:数据框架中的列名

例子 1:

在这个例子中,我们将创建一个有3列的矩阵的数据框架–X1、X2、X3,所有的列都被选中并计算它们的行和。一个额外的列 “row_sum “被附加到数据框架的末尾。

# load the dplyr library
library("dplyr")
  
# creating the dataframe
# from the matrix
data_frame < - data.frame(matrix(rnorm(30), 10, 3),
                          stringsAsFactors=FALSE)
  
print("Original DataFrame")
print(data_frame)
  
# computing row sums
data_mod < - data_frame % > % mutate(row_sum=rowSums(
  select_(., "X1", "X2", "X3")))
  
# printing modified dataframe
print("Modified DataFrame")
print(data_mod)
R

输出

[1] "Original DataFrame" 
X1         X2         X3 
1  -2.1548694 -1.1243811 -1.3944730 
2   1.1023396 -2.0153914 -1.6321950 
3  -0.2959568 -0.6511423 -0.2601204 
4  -0.1503434 -0.3802135  0.5651982 
5   0.7330868  1.8792182  0.1205579 
6   0.5351399 -0.1250861 -0.4986981 
7  -0.4058386 -0.0359763 -0.8261032 
8  -1.3560053 -0.2901260 -1.1033241 
9  -0.6176755 -0.8223494  0.8507067 
10  0.7307755 -1.2664778  1.2097483 
[1] "Modified DataFrame" 
X1         X2         X3     row_sum 
1  -2.1548694 -1.1243811 -1.3944730 -4.67372344 
2   1.1023396 -2.0153914 -1.6321950 -2.54524683 
3  -0.2959568 -0.6511423 -0.2601204 -1.20721946 
4  -0.1503434 -0.3802135  0.5651982  0.03464132 
5   0.7330868  1.8792182  0.1205579  2.73286285 
6   0.5351399 -0.1250861 -0.4986981 -0.08864431 
7  -0.4058386 -0.0359763 -0.8261032 -1.26791811 
8  -1.3560053 -0.2901260 -1.1033241 -2.74945549 
9  -0.6176755 -0.8223494  0.8507067 -0.58931825 
10  0.7307755 -1.2664778  1.2097483  0.67404601
R

例2:

在这个例子中,X1和X3的行和被计算出来。在最终的输出中只有这些列被返回。

# load the package
library("dplyr")
  
# creating the dataframe
data_frame < - data.frame(matrix(rnorm(30), 10, 3),
                          stringsAsFactors=FALSE)
  
print("Original DataFrame")
print(data_frame)
  
# computing row sums
data_mod < -
data_frame % >%
mutate(row_sum=rowSums(select(., .dots=all_of(c("X1", "X2")))))
  
# printing modified dataframe
print("Modified DataFrame")
print(data_mod)
R

输出

[1] "Original DataFrame" 
 X1         X2         X3 
1  -0.01475802 -2.0928792  0.6990158 
2   0.09758214  0.9327706 -0.7551849 
3   1.73099513 -2.0445329  0.7353809 
4  -0.98991323 -0.8638640  0.7545635 
5  -0.10079777 -1.0169922 -2.2176920 
6  -0.32026943 -0.2890030  1.0493662 
7   0.13442533 -2.3674214  0.4975756 
8  -1.47351401 -1.1391841 -1.0987409 
9   1.05674759 -0.7550495  1.0312730 
10 -0.14471879  0.7089866  0.1736686 
[1] "Modified DataFrame"            
X1         X2         X3    row_sum 
1  -0.01475802 -2.0928792  0.6990158 -2.1076372 
2   0.09758214  0.9327706 -0.7551849  1.0303527 
3   1.73099513 -2.0445329  0.7353809 -0.3135378 
4  -0.98991323 -0.8638640  0.7545635 -1.8537772 
5  -0.10079777 -1.0169922 -2.2176920 -1.1177900 
6  -0.32026943 -0.2890030  1.0493662 -0.6092725 
7   0.13442533 -2.3674214  0.4975756 -2.2329960 
8  -1.47351401 -1.1391841 -1.0987409 -2.6126981 
9   1.05674759 -0.7550495  1.0312730  0.3016981 
10 -0.14471879  0.7089866  0.1736686  0.5642678 
R

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程