我正在从4个传感器收集数据,我有一个带有时间戳的数据帧和每个传感器的一个变量。数据框如下所示:
我想重新组织我的数据,如下所示:
我的解决方案涉及删除每个变量并将它们合并在一起,但必须有更好的方法来实现这一点。
很抱歉这个显而易见的问题,但我找不到其他人发帖的答案。
谢谢!
答案 0 :(得分:0)
我重新创建了一个与您提供的数据结构相匹配的虚拟数据集。将来,请使用@ r2evans提供的建议来提供可重现的数据。这样可以更轻松地回答您的问题。
供参考,查看tidyr并收集。这用于将数据从wide(您的数据)转换为long(您想要的数据结构)。
library(tidyverse)
data <- data.frame("WPT1" = sample(1:100,10),
"WPT2" = sample(1:100,10),
"WPT3" = sample(1:100,10),
"WPT4" = sample(1:100,10),
"dt" = sample(seq(as.Date('1999/01/01'),
as.Date('2000/01/01'), by="day"), 10)
)
head(data)[1:5]
WPT1 WPT2 WPT3 WPT4 dt
1 33 49 79 85 1999-06-30
2 62 13 75 45 1999-07-16
3 96 86 60 34 1999-03-10
4 4 21 66 64 1999-08-18
5 49 70 32 49 1999-09-04
data.long <- data %>%
gather(ID,WP,-dt) %>%
mutate(ID = replace(ID,ID == "WPT1",1),
ID = replace(ID,ID == "WPT2",2),
ID = replace(ID,ID == "WPT3",3),
ID = replace(ID,ID == "WPT4",4),
ID = as.numeric(ID)
)
head(data.long)[1:5,]
dt ID WP
1 1999-06-30 1 33
2 1999-07-16 1 62
3 1999-03-10 1 96
4 1999-08-18 1 4
5 1999-09-04 1 49