📜  使用 rowSums 改变 dplyr 中的列

📅  最后修改于: 2022-05-13 01:54:49.854000             🧑  作者: Mango

使用 rowSums 改变 dplyr 中的列

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

安装

可以使用以下命令将包下载并安装在 R 工作空间中:

使用的功能

  • mutate():此包中的 mutate() 方法添加新变量并保留现有变量。 mutate 方法不会影响数据帧的行。但是,可能会根据数据框中创建的组进行重新分组。数据框属性也被保留。

句法:

  • rowSums(): rowSums() 方法计算数值数组、矩阵或数据帧的每一行的总和。我们可以选择特定的行来计算此方法中的总和。由于默认创建的矩阵行和列名称使用 X1、X2.. 等标签进行标记,因此我们可以使用这些名称指定它们。可以使用 select_ 方法选择行。

句法:

示例 1:

在此示例中,我们将创建一个包含 3 列矩阵的数据框 - X1、X2、X3,并选择所有列并计算它们的行总和。附加列“row_sum”附加到数据帧的末尾。

R
# 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
# 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)


输出

[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

示例 2:

在此示例中,计算 X1 和 X3 的 rowSums。最终输出中仅返回这些列。

R

# 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)

输出

[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