📜  在 R 中使用 dplyr 包跨多行和多列求和(1)

📅  最后修改于: 2023-12-03 14:51:07.111000             🧑  作者: Mango

在 R 中使用 dplyr 包跨多行和多列求和

dplyr 是一个流行的 R 包,它提供了一套功能强大的工具,用于对数据进行操纵和转换。其中一个常用的操作是对数据进行求和。在本文中,我们将介绍如何使用 dplyr 进行跨多行和多列的求和操作。

安装和加载 dplyr 包

首先,我们需要安装 dplyr 包。可以使用以下代码在 R 中安装:

install.packages("dplyr")

安装完成后,可以使用以下代码加载 dplyr 包:

library(dplyr)
创建示例数据

为了演示跨多行和多列的求和操作,我们首先需要创建一些示例数据。以下是一个包含几个变量的虚拟数据:

# 创建示例数据框
data <- data.frame(
  ID = c(1, 1, 2, 2),
  Year = c(2019, 2020, 2019, 2020),
  Value1 = c(10, 20, 30, 40),
  Value2 = c(50, 60, 70, 80)
)

# 打印示例数据
print(data)

输出结果如下:

| ID | Year | Value1 | Value2 | |----|------|--------|--------| | 1 | 2019 | 10 | 50 | | 1 | 2020 | 20 | 60 | | 2 | 2019 | 30 | 70 | | 2 | 2020 | 40 | 80 |

跨多行求和

要跨多行求和,我们可以使用 group_by()summarize() 函数。首先,我们需要按照某个列对数据进行分组。然后,使用 summarize() 函数对每个分组进行求和。

以下是使用 dplyr 跨多行求和的示例代码:

# 按照 ID 列进行分组,并跨多行求和 Value1 和 Value2 列
sum_by_id <- data %>%
  group_by(ID) %>%
  summarize(
    Total_Value1 = sum(Value1),
    Total_Value2 = sum(Value2)
  )

# 打印跨多行求和结果
print(sum_by_id)

输出结果如下:

| ID | Total_Value1 | Total_Value2 | |----|--------------|--------------| | 1 | 30 | 110 | | 2 | 70 | 150 |

跨多列求和

要跨多列求和,我们可以使用 mutate() 函数。该函数可以在现有数据上添加新的列,其中包含所需的求和结果。

以下是使用 dplyr 跨多列求和的示例代码:

# 跨多列求和
data_with_sum <- data %>%
  mutate(
    Row_Sum = rowSums(.[, c("Value1", "Value2")])
  )

# 打印跨多列求和结果
print(data_with_sum)

输出结果如下:

| ID | Year | Value1 | Value2 | Row_Sum | |----|------|--------|--------|---------| | 1 | 2019 | 10 | 50 | 60 | | 1 | 2020 | 20 | 60 | 80 | | 2 | 2019 | 30 | 70 | 100 | | 2 | 2020 | 40 | 80 | 120 |

在上面的示例中,我们使用 mutate() 函数创建了一个名为 "Row_Sum" 的新列,其中包含了每行 "Value1" 和 "Value2" 列的求和结果。

通过以上的介绍,你可以使用 dplyr 包在 R 中进行跨多行和多列的求和操作。这些技巧可以帮助你更有效地处理和转换数据。