【发布时间】:2017-07-21 05:29:54
【问题描述】:
这是我尝试在不同数据集上执行的操作的示例,但仍然无法正常工作
PORT STATUS VESSEL DWT IMP/EXP QTY (Mts)
1 KANDLA SAILED CAPTAIN HAMADA 7938 EXP 4500
2 KAKINADA EXPECTED CELON BREEZE IMP 30000
3 KAKINADA BERTH CELON BREEZE IMP 3000
4 KAKINADA SAILED CELON BREEZE IMP 30000
5 KANDLA ANCHORAGE CAPTAIN HAMADA EXP 4500
6 KAKINADA BERTH CELON BREEZE IMP 30000
我想将一行的 (PORT,VESSEL,IMP/EXP) 与另一行进行比较,如果匹配则删除,如果行中的 IMP/EXP 为“IMP”,然后按状态的优先顺序删除该行: 航行>泊位>锚地>预期 它将最高优先级sailed =status 和其他有锚地并删除第2 行,因为它与第4 行匹配的数量、港口、船只。 以此类推,如果条件匹配则查看
1 ) status=sailed and other have berth ,it will delete berth row
2) sailed and other have expected,it will delete expected row
3)if some row have berth and other have anchorage will delete anchorage
4)if some has expected=STATUS & other row have sailed=STATUS it will delete
"expected"=STATUS row
等等 行应符合条件,即qty,port,vessel根据条件删除行
对于 IMP/EXP 中的 EXP,它应该匹配条件,即数量、端口、容器
STATUS 中的优先条件:
priority- sailed>anchorage>expected> berth
输出应该是
PORT STATUS VESSEL DWT IMP/EXP QTY (Mts)
1 KANDLA SAILED CAPTAIN HAMADA 7938 EXP 4500
3 KAKINADA BERTH CELON BREEZE IMP 3000
4 KAKINADA SAILED CELON BREEZE IMP 30000
第2、5、6行被删除是想要的输出
【问题讨论】:
-
不会
unique(hey)得到输出 -
从您的示例中,如果您想获得唯一的行,我会有点困惑?如果是,请尝试
unique(hey)。否则,您能否指定要检查哪两列以查看它们在给定行中是否匹配? -
它是一个我不需要唯一的示例,您是否可以通过编辑代码以相同的方式解决问题,因为我的实际问题陈述使用不同的情况来删除使用此技术不起作用的行。 @萨尔
-
@RishabhKashyap - 那你想要什么?您的代码没有多大意义。我猜
?duplicated的某种组合会让你到达那里,但你必须更清楚你的删除标准。 -
如果不查看具有完全代表性的样本数据,您的 cmets 没有任何意义。也让你的问题可以重现。
标签: r rstudio data-science data-science-experience