使用 rowSums 改变 dplyr 中的列
在本文中,我们将讨论如何使用 R 编程语言中的 dplyr 包来改变数据框中的列。
安装
可以使用以下命令将包下载并安装在 R 工作空间中:
Install Command – install.packages(“dplyr”)
Load Command – library(“dplyr”)
使用的功能
- mutate():此包中的 mutate() 方法添加新变量并保留现有变量。 mutate 方法不会影响数据帧的行。但是,可能会根据数据框中创建的组进行重新分组。数据框属性也被保留。
句法:
mutate (new-col-name = rowSums())
- rowSums(): rowSums() 方法计算数值数组、矩阵或数据帧的每一行的总和。我们可以选择特定的行来计算此方法中的总和。由于默认创建的矩阵行和列名称使用 X1、X2.. 等标签进行标记,因此我们可以使用这些名称指定它们。可以使用 select_ 方法选择行。
句法:
select_(. , col-names.. )
Parameters:
- col-names : column names in the dataframe
示例 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