편집 --- 범위가 더 작아 질 수 있도록 질문을 정리했습니다.R 행 재정렬 및 집계
다음 형식으로 데이터 프레임을 집계하려고 시도했지만 멈추었습니다.
이것은 전화 시스템에서 출력되는 isdn 로그이므로 로그 전체에서 동시에 발생하는 호출을 포함합니다. 이러한 호출은 발신하는 것이 아니라 발신하는 것입니다. 나는 아래처럼 보이도록 데이터 집합을 싶습니다
"V1" "V2""V3""V4" "V5" "V6" "V7" "V8"
"1" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189056:" "Oct 2 00:00:01.326 AEDST: ISDN Se0/0/0:15 Q931: RX <- SETUP pd = 8 callref = 0x174E "
"2" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189057:" " Bearer Capability i = 0x8090A3 "
"3" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189058:" " Standard = CCITT "
"4" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189059:" " Transfer Capability = Speech "
"5" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189060:" " Transfer Mode = Circuit "
"6" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189061:" " Transfer Rate = 64 kbit/s "
"7" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189062:" " Channel ID i = 0xA1839B "
"8" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189063:" " Preferred, Channel 27 "
"9" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189064:" " Calling Party Number i = 0x2183, '0' "
"10" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189065:" " Plan:ISDN, Type:National "
"11" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189066:" " Called Party Number i = 0xC1, '' "
"12" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189067:" " Plan:ISDN, Type:Subscriber(local) "
"13" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189068:" " Sending Complete"
"14" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189069:" "Oct 2 00:00:01.334 AEDST: ISDN Se0/0/0:15 Q931: TX -> CALL_PROC pd = 8 callref = 0x974E "
"15" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189070:" " Channel ID i = 0xA9839B "
"16" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189071:" " Exclusive, Channel 27"
"17" "Oct" "" "2" "00:00:02" "10.20.5.31" "82189072:" "Oct 2 00:00:01.350 AEDST: ISDN Se0/0/0:15 Q931: TX -> ALERTING pd = 8 callref = 0x974E "
"18" "Oct" "" "2" "00:00:02" "10.20.5.31" "82189073:" " Progress Ind i = 0x8088 - In-band info or appropriate now available "
"19" "Oct" "" "2" "00:00:02" "10.20.5.31" "82189074:" "Oct 2 00:00:01.358 AEDST: ISDN Se0/0/0:15 Q931: TX -> CONNECT pd = 8 callref = 0x974E"
"20" "Oct" "" "2" "00:00:02" "10.20.5.31" "82189075:" "Oct 2 00:00:01.382 AEDST: ISDN Se0/0/0:15 Q931: RX <- CONNECT_ACK pd = 8 callref = 0x174E"
"21" "Oct" "" "2" "00:00:19" "10.20.5.30" "81488302:" "Oct 2 00:00:18.210 AEDST: ISDN Se0/0/0:15 Q931: TX -> DISCONNECT pd = 8 callref = 0x9AC7 "
"22" "Oct" "" "2" "00:00:19" "10.20.5.30" "81488303:" " Cause i = 0x8090 - Normal call clearing"
"23" "Oct" "" "2" "00:00:19" "10.20.5.30" "81488304:" "Oct 2 00:00:18.290 AEDST: ISDN Se0/0/0:15 Q931: RX <- RELEASE pd = 8 callref = 0x1AC7"
"24" "Oct" "" "2" "00:00:19" "10.20.5.30" "81488305:" "Oct 2 00:00:18.314 AEDST: ISDN Se0/0/0:15 Q931: TX -> RELEASE_COMP pd = 8 callref = 0x9AC7"
"25" "Oct" "" "2" "00:00:21" "10.20.5.31" "82189076:" "Oct 2 00:00:21.053 AEDST: ISDN Se0/1/0:15 Q931: RX <- SETUP pd = 8 callref = 0x093A "
: 아래와 같은
dataframe 보이는하기
"V1" "V2""V3""V4" "V5" "V6" "V7" "UniqueId" "V8"
"1" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189056:" "0x174E" "Oct 2 00:00:01.326 AEDST: ISDN Se0/0/0:15 Q931: RX <- SETUP pd = 8 callref = 0x174E "
"2" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189057:" "0x174E" " Bearer Capability i = 0x8090A3 "
"3" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189058:" "0x174E" " Standard = CCITT "
....
"21" "Oct" "" "2" "00:00:19" "10.20.5.30" "81488302:" "0x9AC7" "Oct 2 00:00:18.210 AEDST: ISDN Se0/0/0:15 Q931: TX -> DISCONNECT pd = 8 callref = 0x9AC7 "
다시 반복 처리 :
통화 참조가 있습니다 이 데이터 집합을 식별하는 고유 한 방법으로 을 callref로 예로들 수 있습니다 (예 : 0x174E). 데이터 집합 내에서 고유 한 호출 을 찾는 유일한 방법입니다. 요청 된 데이터 프레임의 새 열 (UniqueId)입니다.
아래의 모든 행은 동일한 callref 또는 다른 호출 참조를 나타내는 다른 행에 도달 할 때까지 동일한 callref id를 새 열에 붙여 넣습니다.
callref가 표시 될 때마다이 줄을 한 줄로 축소 할 수있는 사용자를위한 보너스 포인트입니다.
"V1" "V2""V3""V4" "V5" "V6" "V7" "UniqueId" "V8"
"1" "Oct" "" "2" "00:00:01" "10.20.5.31" "82189056:" "0x174E" "Oct 2 00:00:01.326 AEDST: ISDN Se0/0/0:15 Q931: RX <- SETUP pd = 8 callref = 0x174E \n Bearer Capability i = 0x8090A3 \n Standard = CCITT"
동일한 callref에 속하는 것처럼
예를 들어, I 행 2 및 3의 V7 열 결합했다.
R로 재생할 수 있도록 재현 가능한 예를 만들 수 있습니까? 나는 당신의 데이터 세트가 어떻게 배치되어 있는지 이해하는데 어려움을 겪고있다. 재현 가능한 예제를 보려면 문서를 확인하십시오. –
이제 원본 테이블을 텍스트 파일로 복사 한 다음 read.table()을 사용하여 r로 가져올 수있는 예제로 변경했습니다. 이것은 우아하지 않을 수도 있지만 이것은 내가 어떻게 해야할지를 아는 것입니다. 이 변경이 어떤 방식 으로든 도움이 되었다면 알려 주시기 바랍니다. – treeof
해당 텍스트 형식 대신'dput (log_entry)'의 출력으로 질문을 편집하십시오. 이렇게하면 데이터의 ** 정확한 사본 **이 생깁니다. –