我想知道在应用整齐的数据原理时加入时间序列数据的正确/最佳方法。
问题是联接函数联接所有匹配的行。这导致联接数据集中的行数大大增加。
例如,如果我有两个具有时间序列的整洁数据集:
df1 <- data.frame(location = c(1, 1, 1, 1, 2, 2, 2, 2),
time = c(1, 2, 3, 4, 1, 2, 3, 4),
color = c(1, 2, 3, 4, 5, 6, 7, 8))
df2 <- data.frame(location = c(1, 1, 1, 1, 2, 2, 2, 2),
time = c(1, 2, 3, 4, 1, 2, 3, 4),
intensity = c(8, 7, 6, 5, 4, 3, 2, 1))
我希望left_join他们,我得到一个巨大的数据框,因为所有具有位置1的行都被捕获:
> left_join(df1, df2, by = "location")
location time.x color time.y intensity
1 1 1 1 1 8
2 1 1 1 2 7
3 1 1 1 3 6
4 1 1 1 4 5
5 1 2 2 1 8
6 1 2 2 2 7
7 1 2 2 3 6
8 1 2 2 4 5
9 1 3 3 1 8
10 1 3 3 2 7
11 1 3 3 3 6
12 1 3 3 4 5
13 1 4 4 1 8
14 1 4 4 2 7
15 1 4 4 3 6
16 1 4 4 4 5
17 2 1 5 1 4
18 2 1 5 2 3
19 2 1 5 3 2
20 2 1 5 4 1
21 2 2 6 1 4
22 2 2 6 2 3
23 2 2 6 3 2
24 2 2 6 4 1
25 2 3 7 1 4
26 2 3 7 2 3
27 2 3 7 3 2
28 2 3 7 4 1
29 2 4 8 1 4
30 2 4 8 2 3
31 2 4 8 3 2
32 2 4 8 4 1
我想要的是:
location time color intensity
1 1 1 1 8
2 1 2 2 7
3 1 3 3 6
4 1 4 4 5
5 2 1 5 4
6 2 2 6 3
7 2 3 7 2
8 2 4 8 1
如何通过“位置”将这些整齐的数据加入?我是否必须首先spread()
数据,join()
然后是gather()
。如果我有很多时间步长和很多变量,该解决方案似乎会非常费力。
鉴于时间序列数据的通用性和整洁数据的重要性,我假设有一种简单的方法来管理它。抱歉,如果我忽略了一些简单的内容。
答案 0 :(得分:0)
public class Flight
{
protected int flightNum;
protected string origin, destination;
protected CustomerManager cxList;
public Flight(int flNum, string orig, string dest, int maxSe)
{
cxList = new CustomerManager(0, maxSe);
origin = orig;
destination = dest;
flightNum = flNum
}
public bool addPass(Customer cx)
{
return cxList.addCustomer(cx.getCID(),cx.getFN(), cx.getlN(),cx.getcNum());
}
}
功能可能是您在这里需要的:
merge