У меня есть след dataframe windows_ff:merge.ffdf неправильного результата, если несколько столбцов совпадают в R
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
Я хочу найти взаимное соотношение между рядами, так что я решил сделать точную копию этого dataframe :
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 dataframes:
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 строки в результате.
Выполнение слияния между нормальными dataframes:
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
Я думаю, что это действительно опасно, что определенная операция дает 2 разные результаты, если и след dataframes или " нормальные данные ". Это может привести к отравленным результатам, и экспериментатор не может знать об этом. Я сомневаюсь: «Возможно, другие результаты, которые я получил с пакетом ff, отравлены, и я не понял»