全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1470 8
2021-03-18
现有数据如下,一段时间内的不同观测点的观测值(表一)。
希望可以根据不同的net_id创建若干个时间序列,时间序列为该为该net_id对应的所有date和observation(如表二)。后续需要对这些序列进行相同的操作。                                                                                            date             net_id        observation                              
1        2017-05-01        2091            43
2        2017-05-01        2092            13
3        2017-05-01        2093           162
4        2017-05-01        2094            65
5        2017-05-01        2095            67
6        2017-05-01        2096             2
7        2017-05-01        2097             3
8        2017-05-01        2104             1
9        2017-05-02        2091            47
10        2017-05-02        2092            11
11        2017-05-02        2093             88
12        2017-05-02        2094             80
13        2017-05-02        2095             58
14        2017-05-02        2096             5
15        2017-05-03        2091             32
16        2017-05-03        2092             9
17        2017-05-03        2093            70
18        2017-05-03        2094             66
(表一)

比如下面这张图是挑选出net_id为2091所有数据(表二)。

              date              net_id    observation   

1        2017-05-01        2091             43
2        2017-05-02        2091             47
3        2017-05-03        2091             32
4        2017-05-04        2091             32
5        2017-05-05        2091             40
6        2017-05-06        2091             37
7        2017-05-07        2091             37
8        2017-05-08        2091             33
9        2017-05-09        2091             31
10        2017-05-10        2091             37
11        2017-05-11        2091             26
12        2017-05-12        2091             42
(表二)

本r语言小小白请求各位大神赐教:如何才能自动地创建出所有net_id对应的时间序列(如图二),以便于后续我可以对这些序列进行相同的操作,或者有其他的好方法?

总共的net_id共有两千多个,无法多次次手动创建。我已知晓如何凭借net_id创建一个序列,我想请教各位如何自动创建两千多个序列(或许是通过循环的方式从一个大表格中挑选数据,从而获得两千多个tibble对象?或者您有什么别的解决方法)?

或许用循环的方式filter不同的net_id并创建对应的序列?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-3-18 12:22:02
你可以使用dplyr里面的group_by命令配合net_id,这样这个数据就是按照net_id排序了。
或者你也可以用基础包里面的subset命令,以net_id来作为分类,这样每个net_id就是一个对应的sublist了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-3-18 13:24:07
owenqi 发表于 2021-3-18 12:22
你可以使用dplyr里面的group_by命令配合net_id,这样这个数据就是按照net_id排序了。
或者你也可以用基础 ...
好的谢谢您 我先试一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-3-18 13:48:01
owenqi 发表于 2021-3-18 12:22
你可以使用dplyr里面的group_by命令配合net_id,这样这个数据就是按照net_id排序了。
或者你也可以用基础 ...
我试了您的方法,数据可以根据net_id进行排列,如下图
           date            net_id  observation
1        2017-07-25        16        1
2        2017-08-16        16        1
3        2017-06-24        43        1
4        2017-07-31        43        1
5        2017-10-06        78        1
6        2017-08-14        108        3
7        2017-10-06        108        1
8        2017-10-25        110        1
9        2017-05-14        111        1
10        2017-05-13        112        1
11        2017-07-01        112        1
12        2017-05-28        114        1
13        2017-10-03        114        1
14        2017-10-15        114        1
15        2017-07-07        117        1
16        2017-10-19        117        2
subset确实可以创建一个子集,我想请教您如何自动创建n个子集,而不是多次手动subset一个子集。因为net_id共有两千多个
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-3-18 14:23:16
你的原始数据已经是一个很tidy的数据表了,大多数操作都可以基于你的原始数据实现,不晓得后续需要何种操作,非要把一个很好的原数据拆分开来?
作个比喻啊,酿酒的师傅费了那么大劲把葡萄酒里的糖份除掉了,而偏偏有同学喝酒时要兑上可乐。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-3-18 14:36:55
llb_321 发表于 2021-3-18 14:23
你的原始数据已经是一个很tidy的数据表了,大多数操作都可以基于你的原始数据实现,不晓得后续需要何种操作 ...
您好,谢谢回复。我后续的操作需要对“凭借net_id所建立的时间序列”进行分解。也就是说不同的net_id对应不同的序列,这就需要建立若干个时间序列,再对序列进行分析,得到不同的结果。请问您有什么建议吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群