ff データフレーム windows_ff があります。
edge ipaddr port protocol windowed_qd class
1 1182430570 41.2.194.42 1299 1 0 WEB
2 1182430570 41.2.194.42 1302 1 0 WEB
その行間の相互関係を見つけたいので、そのデータフレームの正確なコピーを作成することにしました。
outgoing_windows_ff_1 <- ffdf(edge=outgoing_windows_ff$edge,
ipaddr=outgoing_windows_ff$ipaddr,
influencing_port=outgoing_windows_ff$port,
influencing_proto=outgoing_windows_ff$proto,
influencing_class=outgoing_windows_ff$class)
次に、2 つのデータフレームをマージします。
merged <- merge(x=outgoing_windows_ff, y=outgoing_windows_ff_1,
by.x=c('edge','ipaddr'),by.y=c('edge','ipaddr') )
結果は次のとおりです。
edge ipaddr port protocol windowed_qd class influencing_port
1 1182430570 41.2.194.42 1299 1 0 WEB 1299
2 1182430570 41.2.194.42 1302 1 0 WEB 1299
しかし、結果に4行が期待されるので、それは間違っています。
通常のデータフレーム間のマージを行う:
merged <- merge(x=as.data.frame(outgoing_windows_ff),
y=as.data.frame(outgoing_windows_ff_1),
by.x=c('edge','ipaddr'),by.y=c('edge','ipaddr') )
正しい結果が得られます:
edge ipaddr port protocol windowed_qd class influencing_port influencing_proto
1 1182430570 41.2.194.42 1299 1 0 WEB 1299 1
2 1182430570 41.2.194.42 1299 1 0 WEB 1302 1
3 1182430570 41.2.194.42 1302 1 0 WEB 1299 1
4 1182430570 41.2.194.42 1302 1 0 WEB 1302 1
ffデータフレームまたは「通常のデータフレーム」が使用されている場合、特定の操作で2つの異なる結果が得られるのは本当に危険だと思います。これは有害な結果につながる可能性があり、実験者はそれについて知ることができません。私の疑問は次のとおりです。