【问题标题】:Merging Multiple Date and Values Pairs into One Date Column in r将多个日期和值对合并到 r 中的一个日期列中
【发布时间】:2016-04-30 19:50:42
【问题描述】:

我的数据列标题如下所示:

日期1 变量1 日期2 变量2 日期3 变量3 日期4 变量4

每个日期/变量对的长度不同。

有谁知道如何组合所有日期值,以便“日期”在这样的一列中:

日期变量1变量2变量3变量4

【问题讨论】:

  • 在您的流程之前和之后添加一些示例数据,以便清楚您要做什么。这样你会得到更好的答案。
  • 最好根据示例显示预期输出。请使用dput显示数据而不是图像。

标签: r


【解决方案1】:

我认为这可能是一个有趣的练习。

我将你的一些数据模拟成 csv。

> raw_input <- read.csv('date variable sample.csv')
> raw_input
                 Date Variable.1           Date2 Variable.2            Date4 Variable4
1       9/12/2009         82       9/12/2009         41       15/12/2009         0
2 9/12/2009 12:00         80 9/12/2009 12:00         38 23/03/2010 16:00        71
3 9/12/2009 16:00         80 9/12/2009 16:00         42 25/03/2010 21:00        73

然后我创建了一个 set.1, set.2 ... 将您的日期、变量对分隔到不同的数据帧中。

> set.1 <- raw_input[c('Date','Variable.1')]
> colnames(set.1) <- c('Date', 'Variable')

             Date Variable
1       9/12/2009       82
2 9/12/2009 12:00       80
3 9/12/2009 16:00       80

> set.2 <- raw_input[c('Date2', 'Variable.2')]
> colnames(set.2) <- c('Date', 'Variable')

             Date Variable
1       9/12/2009       41
2 9/12/2009 12:00       38
3 9/12/2009 16:00       42

> set.4 <- raw_input[c('Date4', 'Variable4')]
> colnames(set.4) <- c('Date', 'Variable')

              Date Variable
1       15/12/2009        0
2 23/03/2010 16:00       71
3 25/03/2010 21:00       73

然后我用 Reduce() 合并所有数据帧。

> fin <- Reduce(function(x, y) merge(x, y, all=T, by=c("Date")), list(set.1, set.2, set.4))
> fin
              Date Variable.x Variable.y Variable
1        9/12/2009         82         41       NA
2  9/12/2009 12:00         80         38       NA
3  9/12/2009 16:00         80         42       NA
4       15/12/2009         NA         NA        0
5 23/03/2010 16:00         NA         NA       71
6 25/03/2010 21:00         NA         NA       73

您也可以标准化(忽略时间),这样您就可以对日期进行分组,但您可能不想这样做。

编码愉快!

【讨论】:

  • 我做了上述操作并使用na.omit()在使用Reduce()函数之前删除每个数据帧中的NA。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-25
  • 2015-06-03
  • 1970-01-01
  • 2021-12-16
  • 2012-07-21
  • 1970-01-01
相关资源
最近更新 更多