如何在 r 中将两列合并为一列(附示例)


通常,您可能希望在 R 中将两列合并为一列。例如,假设您有一个包含三列的数据框:

 month year value
   10 2019 15
   10 2020 13
   11 2020 13
   11 2021 19
   12 2021 22

您可能希望将月份和年份列合并到一个名为date的列中:

 date value
   2019_10 15
   2020_10 13
   2020_11 13
   2021_11 19
   2021_12 22

本教程解释了在 R 中快速完成此操作的两种方法。

方法 1:使用 Base R 的粘贴功能

以下代码演示如何使用 R 数据库粘贴函数将月份年份列合并到名为date的单个列中:

 #create data frame
data <- data.frame(month=c(10, 10, 11, 11, 12),
                   year=c(2019, 2020, 2020, 2021, 2021),
                   value=c(15, 13, 13, 19, 22))

#view data frame
data

#combine year and month into one column
data$date <- paste (data$year, data$month, sep=" _ ")

#view new data frame
data

  month year value date
1 10 2019 15 2019_10
2 10 2020 13 2020_10
3 11 2020 13 2020_11
4 11 2021 19 2021_11
5 12 2021 22 2021_12

一旦我们合并了两列,如果我们愿意,我们可以删除旧的列:

 data_new <- data[c(" date ", " value ")]

data_new

     date value
1 2019_10 15
2 2020_10 13
3 2020_11 13
4 2021_11 19
5 2021_12 22

方法 2:使用 Tidyr 的 Unite 功能

以下代码演示如何使用 tiydr 包中的unit函数将月份年份列合并到名为date的单个列中:

 #load tidyr package
library(tidyr)

#create data frame
data <- data.frame(month=c(10, 10, 11, 11, 12),
                   year=c(2019, 2020, 2020, 2021, 2021),
                   value=c(15, 13, 13, 19, 22))

#combine year and month into one column
unit (data, date, c(year, month))

     date value
1 2019_10 15
2 2020_10 13
3 2020_11 13
4 2021_11 19
5 2021_12 22

请注意,两种方法都会产生相同的结果。

您可以在此处找到单位函数的完整文档。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注