Dplyr - 在 R 中查找多列的均值
在本文中,我们将讨论如何使用 R 编程语言的 dplyr 包计算多列的平均值。
使用中的功能
- mutate()方法添加新变量并保留现有变量。它用于执行更多变量的添加。在此方法应用期间,原始的行和列顺序保持不变。
Syntax: mutate(.data, name-value)
Parameter:
.data – The data frame or table to be appended
name-value – The new column name and a function to define values
- rowMeans()返回数据集中每一行的平均值。函数原型包含可选参数,包括 na.rm 逻辑参数,该参数指示是否省略 N/A 值。
句法:
rowMeans (data-set)
- 数据集是通过选择一组特定的列来产生平均值的。 select() 方法用于基于一组条件进行数据帧过滤。
句法:
select (data-set, cols-to-select)
因此,为了使用 R 编程语言找到数据帧多列的平均值,我们首先需要一个数据帧。然后可以使用 select() 方法选择此数据框中的列,并将所选列传递给 rowMeans()函数以进行进一步处理。使用 mutate()函数使用单独的列将结果添加到数据帧中。
可以有多种选择列的方法
示例:通过向量选择列来计算多列的平均值
R
library("dplyr")
# creating a data frame
data_frame <- data.frame(col1 = c(1,2,3,4),
col2 = c(2.3,5.6,3.4,1.2),
col3 = c(5,6,7,8))
print("Original DataFrame")
print(data_frame)
data_frame_mod <- mutate(data_frame, mean_col = rowMeans(select(data_frame,
c(col2,col3)), na.rm = TRUE))
print("Modified DataFrame")
print(data_frame_mod)
R
library("dplyr")
# creating a data frame
data_frame <- data.frame(col1 = c(1,2,3,4),
col2 = c(2.3,5.6,3.4,1.2),
col3 = c(5,6,7,8))
print("Original DataFrame")
print(data_frame)
data_frame_mod <- mutate(data_frame, mean_col = rowMeans(select(data_frame,
col1:col3), na.rm = TRUE))
print("Modified DataFrame")
print(data_frame_mod)
R
library("dplyr")
# creating a data frame
data_frame <- data.frame(col1 = c(1,2,3,4),
col2 = c(2.3,5.6,3.4,1.2),
nextcol2 = c(1,2,3,0),
col3 = c(5,6,7,8),
nextcol = c(4,5,6,7)
)
print("Original DataFrame")
print(data_frame)
print("Modified DataFrame")
data_frame %>%
mutate(mean_col = rowMeans(select(data_frame,
starts_with('next')), na.rm = TRUE))
输出:
[1] "Original DataFrame"
col1 col2 col3
1 1 2.3 5
2 2 5.6 6
3 3 3.4 7
4 4 1.2 8
[1] "Modified DataFrame"
col1 col2 col3 mean_col
1 1 2.3 5 3.65
2 2 5.6 6 5.80
3 3 3.4 7 5.20
4 4 1.2 8 4.60
可以使用 select() 方法中指定的:运算符为所有其他列计算列均值。
示例:通过通过 :运算符选择列来查找多列的平均值
电阻
library("dplyr")
# creating a data frame
data_frame <- data.frame(col1 = c(1,2,3,4),
col2 = c(2.3,5.6,3.4,1.2),
col3 = c(5,6,7,8))
print("Original DataFrame")
print(data_frame)
data_frame_mod <- mutate(data_frame, mean_col = rowMeans(select(data_frame,
col1:col3), na.rm = TRUE))
print("Modified DataFrame")
print(data_frame_mod)
输出
[1] "Original DataFrame"
col1 col2 col3
1 1 2.3 5
2 2 5.6 6
3 3 3.4 7
4 4 1.2 8
[1] "Modified DataFrame"
col1 col2 col3 mean_col
1 1 2.3 5 2.766667
2 2 5.6 6 4.533333
3 3 3.4 7 4.466667
4 4 1.2 8 4.400000
还可以使用包含字符串 的方法 starts_with() 从数据框中提取一组特定的列。名称与字符串匹配的所有列都在数据框中返回。
示例:通过用starts_with() 选择列来查找多列的平均值
电阻
library("dplyr")
# creating a data frame
data_frame <- data.frame(col1 = c(1,2,3,4),
col2 = c(2.3,5.6,3.4,1.2),
nextcol2 = c(1,2,3,0),
col3 = c(5,6,7,8),
nextcol = c(4,5,6,7)
)
print("Original DataFrame")
print(data_frame)
print("Modified DataFrame")
data_frame %>%
mutate(mean_col = rowMeans(select(data_frame,
starts_with('next')), na.rm = TRUE))
输出
[1] "Original DataFrame"
col1 col2 nextcol2 col3 nextcol
1 1 2.3 1 5 4
2 2 5.6 2 6 5
3 3 3.4 3 7 6
4 4 1.2 0 8 7
[1] "Modified DataFrame"
col1 col2 nextcol2 col3 nextcol mean_col
1 1 2.3 1 5 4 2.5
2 2 5.6 2 6 5 3.5
3 3 3.4 3 7 6 4.5
4 4 1.2 0 8 7 3.5