如何根据 r 中数据框中的其他数字重复列重新组织列?
how to re-organized a column based on other number repetition column in a datframe in r?
我的数据框 (1700000x3) 有 3 列:
- 日期:从 2011 年到 2019 年(在整个日期中随机选择了几天和几个月)
- 轻:从 350 到 2299(一个接一个)然后重新启动
- ID:目标
- V: 值
这是我的数据的样子(快速示例):
date
light
ID
V
2013-06-17
350
p01
0.1
2013-06-17
351
p01
0.1
2013-06-17
352
p01
0.2
2013-06-17
353
p01
0.3
2013-06-17
354
p01
0.1
2013-06-17
355
p01
0.1
2013-04-18
...
p01
0.1
2013-06-17
2297
p01
0.2
2013-06-17
2298
p01
0.3
2013-06-17
2299
p01
0.2
2014-04-18
350
r03
0.1
2014-04-18
351
r03
0.4
2014-04-18
352
r03
0.1
2014-04-18
353
r03
0.6
2014-04-18
354
r03
0.2
2014-04-18
355
r03
0.1
2014-04-18
...
r03
0.1
2014-04-18
2297
r03
0.5
2014-04-18
2298
r03
0.5
2014-04-18
2299
r03
0.6
一切都很好,直到这里!问题在于,在数据框的中间,LIGHT 列的数字不是从 350 到 2299,而是从 2299 到 350。这些已针对多个 ID 进行了验证。
数据框的一部分如下所示:
date
light
ID
V
2014-07-31
2299
s01
0.1
2014-07-31
2298
s01
0.1
2014-07-31
2297
s01
0.2
2014-07-31
2296
s01
0.3
2014-07-31
2295
s01
0.1
2014-07-31
2294
s01
0.1
2014-07-31
...
s01
0.1
2014-07-31
352
s01
0.2
2014-07-31
351
s01
0.3
2014-07-31
350
s01
0.2
2014-07-31
2299
x03
0.1
2014-07-31
2298
x03
0.4
2014-07-31
2297
x03
0.1
2014-07-31
2296
x03
0.6
2014-07-31
2295
x03
0.2
2014-07-31
2294
x03
0.1
2014-07-31
...
x03
0.1
2014-07-31
352
x03
0.5
2014-07-31
351
x03
0.5
2014-07-31
350
x03
0.6
我想要的是让 LIGHT 列始终具有从 350 到 2299 的数字间隔,然后从 350 到 2299 重新开始,依此类推。此操作必须遵守其他列、日期、V“值”和 ID。
重要提示:我有不同日期的相同代码!!
我找不到这样一个具体问题的答案。
任何帮助将不胜感激。
按ID排序然后点亮?
your.data %<>% arrange( ID, light )
我的数据框 (1700000x3) 有 3 列:
- 日期:从 2011 年到 2019 年(在整个日期中随机选择了几天和几个月)
- 轻:从 350 到 2299(一个接一个)然后重新启动
- ID:目标
- V: 值
这是我的数据的样子(快速示例):
date | light | ID | V |
---|---|---|---|
2013-06-17 | 350 | p01 | 0.1 |
2013-06-17 | 351 | p01 | 0.1 |
2013-06-17 | 352 | p01 | 0.2 |
2013-06-17 | 353 | p01 | 0.3 |
2013-06-17 | 354 | p01 | 0.1 |
2013-06-17 | 355 | p01 | 0.1 |
2013-04-18 | ... | p01 | 0.1 |
2013-06-17 | 2297 | p01 | 0.2 |
2013-06-17 | 2298 | p01 | 0.3 |
2013-06-17 | 2299 | p01 | 0.2 |
2014-04-18 | 350 | r03 | 0.1 |
2014-04-18 | 351 | r03 | 0.4 |
2014-04-18 | 352 | r03 | 0.1 |
2014-04-18 | 353 | r03 | 0.6 |
2014-04-18 | 354 | r03 | 0.2 |
2014-04-18 | 355 | r03 | 0.1 |
2014-04-18 | ... | r03 | 0.1 |
2014-04-18 | 2297 | r03 | 0.5 |
2014-04-18 | 2298 | r03 | 0.5 |
2014-04-18 | 2299 | r03 | 0.6 |
一切都很好,直到这里!问题在于,在数据框的中间,LIGHT 列的数字不是从 350 到 2299,而是从 2299 到 350。这些已针对多个 ID 进行了验证。 数据框的一部分如下所示:
date | light | ID | V |
---|---|---|---|
2014-07-31 | 2299 | s01 | 0.1 |
2014-07-31 | 2298 | s01 | 0.1 |
2014-07-31 | 2297 | s01 | 0.2 |
2014-07-31 | 2296 | s01 | 0.3 |
2014-07-31 | 2295 | s01 | 0.1 |
2014-07-31 | 2294 | s01 | 0.1 |
2014-07-31 | ... | s01 | 0.1 |
2014-07-31 | 352 | s01 | 0.2 |
2014-07-31 | 351 | s01 | 0.3 |
2014-07-31 | 350 | s01 | 0.2 |
2014-07-31 | 2299 | x03 | 0.1 |
2014-07-31 | 2298 | x03 | 0.4 |
2014-07-31 | 2297 | x03 | 0.1 |
2014-07-31 | 2296 | x03 | 0.6 |
2014-07-31 | 2295 | x03 | 0.2 |
2014-07-31 | 2294 | x03 | 0.1 |
2014-07-31 | ... | x03 | 0.1 |
2014-07-31 | 352 | x03 | 0.5 |
2014-07-31 | 351 | x03 | 0.5 |
2014-07-31 | 350 | x03 | 0.6 |
我想要的是让 LIGHT 列始终具有从 350 到 2299 的数字间隔,然后从 350 到 2299 重新开始,依此类推。此操作必须遵守其他列、日期、V“值”和 ID。
重要提示:我有不同日期的相同代码!!
我找不到这样一个具体问题的答案。
任何帮助将不胜感激。
按ID排序然后点亮?
your.data %<>% arrange( ID, light )