할 수 있습니다 얻을 merge
을 통해 같은 줄에 SIP 및 DIP 기록을 해당 :
for(i in 2:nrow(df_merged)) {
ind <- df_merged$UID_DIP
ind[i] <- df_merged$UID_SIP[i]
df_merged <- df_merged[!duplicated(ind),]
}
df_merged
df_merged
SIP UID_SIP PROTOCOL_SIP SPORT_SIP DPORT_SIP UID_DIP PROTOCOL_DIP SPORT_DIP DPORT_DIP
1 1207697420 720107626538 17 53 7722 720108826800 17 47904 53
디가 있기 때문에 :
이
df <- data.frame(
"UID" = c(720107626538, 720108826800),
"SIP" = c(1207697420, 3232248333),
"DIP" = c(3232248333, 1207697420),
"PROTOCOL" = c(17, 17),
"SPORT" = c(53, 47904),
"DPORT" = c(7722, 53),
stringsAsFactors = FALSE)
df_merged <- merge(
df[,setdiff(colnames(df), "DIP")],
df[,setdiff(colnames(df), "SIP")],
by.x = "SIP",
by.y = "DIP",
all = FALSE,
suffixes = c("_SIP", "_DIP"))
그 후, 당신은 중복을 제거하기 위해 UID 필드를 사용할 수 있습니다 duping은 루프에 의존하기 때문에 데이터 세트가 큰 경우 모든 작업에 많은 시간이 소요될 수 있습니다.
중복 행을 제거하는 방법은 무엇입니까? –
하나의 데이터 세트의 DIP는 두 번째 데이터 세트의 SIP와 일치하지만 UID로 정렬 된 바로 다음 일치입니다. –
복제물 *을 정확히 정의하는 것은 무엇입니까? 다른 변수가 같으면'SIP'와'DIP' 만 다른 순서로 나타 납니까? –