通过代码合并两个数据表,但识别首先扫描的位置
Merging two data tables by code but recognize where it was scanned first
我正在处理一些包含拒绝和接受数据的数据。这些在两个单独的日志文件中分开。我想将它们与 R 代码合并。
但是,如果代码被拒绝,它 以后可以 被接受。反之亦然。如果您已经使用了该代码,稍后应该会被拒绝。
我想在这两个 table 之间进行合并,因为当您的代码被拒绝时,我也会得到一个代码,为什么当有人在错误的日期使用该代码时,它首先被拒绝或者在错误的商店并稍后在正确的时间和地点使用它我可以在接受的日志文件中找到它。
我的代码如下所示:
head(ACCEPTED)
code Overruled device date
1 29 FALSE 05 2017-02-23 16:27:56
2 30 FALSE 05 2017-02-23 16:27:58
3 09 FALSE 05 2017-02-23 16:28:31
4 06 FALSE 08 2017-02-23 16:28:34
5 27 FALSE 08 2017-02-23 16:28:39
6 07 FALSE 08 2017-02-23 16:28:59
head(REJECTED)
code CODE device date
1 29 1 01 2017-02-22 12:47:49
2 07 5 01 2017-02-23 16:48:25
3 00 2 01 2017-02-23 12:50:00
4 09 3 01 2017-02-23 16:51:23
5 87 1 07 2017-02-23 16:25:29
6 98 1 03 2017-02-23 16:25:47
我已经通过条形码合并了它们,但后来我没有包括我想知道代码首次使用的来源这一事实。
- 因此对于代码 29,它首先在 22 日被拒绝并在 23 日被接受。
- 但是code 09先被接受后被拒绝(后来有人尝试使用该code,但是因为已经被使用而失败了)
一些代码不在两个 table 中,因为它要么被接受,要么被拒绝并且不再使用。
我想要一个可以与 Microsoft power BI 的和弦可视化工具一起使用的 table
新的数据框应该是这样的:
code from to
29 01 05 # because the code was first seen at 01 and then scanned at 05
09 05 01
07 08 01
如果代码在其他 table 中不存在,则不应出现在新的 table 中。正常合并按代码进行,但应按代码出现的顺序进行。
任何帮助将不胜感激。
您可以通过 Power Query 连接表:
编辑查询
右击 Queries
-> New Query
-> Combine
-> Megre Queries as New
select 两个表,然后是每个表下的 code
列。
指定Join Kind
.
展开NewColumn
加入两个表后:
code Overruled device.ac date.ac CODE.rej device.rej date.rej
29 FALSE 05 2017-02-23 16:27:56 1 01 2017-02-22 12:47:49
09 FALSE 05 2017-02-23 16:28:31 3 01 2017-02-23 16:51:23
07 FALSE 08 2017-02-23 16:28:59 5 01 2017-02-23 16:48:25
然后您可以添加计算列:
from = IF(new[date.ac]<new[date.rej],new[device.ac],new[device.rej])
to = IF(new[date.ac]>new[date.rej],new[device.ac],new[device.rej])
结果:
code from to
7 8 1
9 5 1
29 1 5
我正在处理一些包含拒绝和接受数据的数据。这些在两个单独的日志文件中分开。我想将它们与 R 代码合并。
但是,如果代码被拒绝,它 以后可以 被接受。反之亦然。如果您已经使用了该代码,稍后应该会被拒绝。
我想在这两个 table 之间进行合并,因为当您的代码被拒绝时,我也会得到一个代码,为什么当有人在错误的日期使用该代码时,它首先被拒绝或者在错误的商店并稍后在正确的时间和地点使用它我可以在接受的日志文件中找到它。
我的代码如下所示:
head(ACCEPTED)
code Overruled device date
1 29 FALSE 05 2017-02-23 16:27:56
2 30 FALSE 05 2017-02-23 16:27:58
3 09 FALSE 05 2017-02-23 16:28:31
4 06 FALSE 08 2017-02-23 16:28:34
5 27 FALSE 08 2017-02-23 16:28:39
6 07 FALSE 08 2017-02-23 16:28:59
head(REJECTED)
code CODE device date
1 29 1 01 2017-02-22 12:47:49
2 07 5 01 2017-02-23 16:48:25
3 00 2 01 2017-02-23 12:50:00
4 09 3 01 2017-02-23 16:51:23
5 87 1 07 2017-02-23 16:25:29
6 98 1 03 2017-02-23 16:25:47
我已经通过条形码合并了它们,但后来我没有包括我想知道代码首次使用的来源这一事实。
- 因此对于代码 29,它首先在 22 日被拒绝并在 23 日被接受。
- 但是code 09先被接受后被拒绝(后来有人尝试使用该code,但是因为已经被使用而失败了)
一些代码不在两个 table 中,因为它要么被接受,要么被拒绝并且不再使用。
我想要一个可以与 Microsoft power BI 的和弦可视化工具一起使用的 table
新的数据框应该是这样的:
code from to
29 01 05 # because the code was first seen at 01 and then scanned at 05
09 05 01
07 08 01
如果代码在其他 table 中不存在,则不应出现在新的 table 中。正常合并按代码进行,但应按代码出现的顺序进行。 任何帮助将不胜感激。
您可以通过 Power Query 连接表:
编辑查询
右击
Queries
->New Query
->Combine
->Megre Queries as New
select 两个表,然后是每个表下的
code
列。指定
Join Kind
.展开
NewColumn
加入两个表后:
code Overruled device.ac date.ac CODE.rej device.rej date.rej
29 FALSE 05 2017-02-23 16:27:56 1 01 2017-02-22 12:47:49
09 FALSE 05 2017-02-23 16:28:31 3 01 2017-02-23 16:51:23
07 FALSE 08 2017-02-23 16:28:59 5 01 2017-02-23 16:48:25
然后您可以添加计算列:
from = IF(new[date.ac]<new[date.rej],new[device.ac],new[device.rej])
to = IF(new[date.ac]>new[date.rej],new[device.ac],new[device.rej])
结果:
code from to
7 8 1
9 5 1
29 1 5