我有一个 Dataframe ,其中包含各种事件开始和结束的不同时间点的数据。 Dataframe 看起来像这样:
Date Event 1 start Event 1 end Event 2 start Event 2 end Event 3 start Event 3 end
01/01/2020 06:35 18:02 06:13 18:24 03:15 15:18
02/01/2020 06:36 18:02 06:13 18:24 04:02 15:57
03/01/2020 06:36 18:01 06:13 18:24 04:50 16:37
04/01/2020 06:36 18:01 06:14 18:24 05:39 17:21
05/01/2020 06:36 18:01 06:14 18:23 06:28 18:06
06/01/2020 06:37 18:01 06:14 18:23 07:18 18:54
07/01/2020 06:37 18:01 06:14 18:23 08:07 19:43
08/01/2020 06:37 18:01 06:15 18:23 08:56 20:34
09/01/2020 06:38 18:01 06:15 18:23 09:43 21:26
10/01/2020 07:38 19:01 07:15 19:23 10:43 22:26
11/01/2020 08:38 20:01 08:15 20:23 11:43 23:26
12/01/2020 09:38 21:01 09:15 21:23 12:43 00:26
我想重塑它从宽到长创建一个新的“事件”列,所以我希望得到这样的东西:
Date Event Start End
01/01/2020 Event 1 06:24 18:10
01/01/2020 Event 2 18:10 18:54
01/01/2020 Event 3 18:54 23:59
02/01/2020 Event 1 06:24 18:10
02/01/2020 Event 2 18:10 18:54
02/01/2020 Event 3 18:54 23:59
03/01/2020 Event 1 06:24 18:10
03/01/2020 Event 2 18:10 18:54
03/01/2020 Event 3 18:54 23:59
04/01/2020 Event 1 06:24 18:10
04/01/2020 Event 2 18:10 18:54
04/01/2020 Event 3 18:54 23:59
我试过使用dplyr的gather函数,但它没有给我想要的结果。
任何帮助都将不胜感激。
谢谢!
1条答案
按热度按时间mspsb9vt1#
这些名称有点脏,所以一个可能的方法是在透视之前整理它们。
这就产生了
请注意,您给定的数据集可能略有不同。我必须从您提供的复制粘贴中清除它们。如果您提供数据的
str()
,可能会更容易,但主要思想在这里。1.使用
Date
透视所有内容1.从变量
name
创建新变量1.将轴旋转得更宽,这样我们就可以使用新列来获取名称和值