【发布时间】:2018-07-25 18:05:14
【问题描述】:
我有一个数据框(包含 200k 行):
DF1>
ID SR1 SR2 DRC1 DX2
1 123 as#12.c ABC-1 SXI
2 124 ae&14.v ABC-1 SXI
3 125 at$19.e AXX-1
4 125 at$19.e AXX-1 SCV
5 785 ab&22.n AWZ-2 DDF
6 849 ab&22.n AWZ-5 DDF
为此,我想根据以下条件将新列添加到DF1 为status:
- 检查每个
DX2值,我们在DRC-1中具有相同的值(即对于ID 1 和2,我们具有与ABC-1相同的DRC1值)。 - 在某些情况下,我没有
DX2值,对于那些检查SR-1和SR-2来比较整个数据帧中的DRC-1值,如果它在状态中显示True,否则False相同。
注意:如果 SR-1 或 SR-2 中的任何值与整个数据帧中的任何行匹配,(即所需输出中的第 4 行)
- 我们没有
DX2值,但是当使用SR-1和SR-2比较日期框时,发现一些我们有DX2值对应于SR-1和SR-2的地方比给出状态为True-ID或False-ID视情况而定。
期望的输出:
ID SR1 SR2 DRC1 DX2 Status
1 123 as#12.c ABC-1 SXI True
2 124 ae&14.v ABC-1 SXI True
3 125 at$19.e AXX-1 True-4
4 125 at$19.d AXX-1 SCV True
5 785 ab&22.n AWZ-2 DDF False
6 849 ab&22.n AWZ-5 DDF False
到目前为止,我只能将一列与以下代码进行比较:
New_DF<-transform(DF_1, Status = ave(as.character(DF_1$DRC1), DF_1$DX2, FUN = function(x)
if(length(unique(x)) == 1) "True" else "False" ))
另外,只是想知道在MySQL中是否可以这样做。??
【问题讨论】:
-
我相信我昨天在不同的用户名下看到了这个问题。你之前的问题怎么了?
-
@TimBiegeleisen 正确,但这不是结构化的,也没有答案...:(
-
@TimBiegeleisen 你能帮我吗??
-
我不明白你的规则。例如,为什么 ID 1 的状态为 TRUE?
DX2和DRC1不一样吗? -
@ytu ID 1 的状态为 TRUE,因为它的
DX2值与 ID2 的DX2值匹配。假设我们有一行,其所有值对于整个数据帧都是唯一的,而不是应该为真。
标签: mysql r loops if-statement matrix