📜  Dplyr - 在 R 中查找多列的均值

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

Dplyr - 在 R 中查找多列的均值

在本文中,我们将讨论如何使用 R 编程语言的 dplyr 包计算多列的平均值。

使用中的功能

  • mutate()方法添加新变量并保留现有变量。它用于执行更多变量的添加。在此方法应用期间,原始的行和列顺序保持不变。
  • 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