상세 컨텐츠

본문 제목

[NetMiner Tips] 쿼리 - 조건에 따라 데이터를 추출하려면?

NetMiner 이야기/NetMiner Tips

by (주)사이람 2015. 10. 19. 17:29

본문

 

 
 
 

안녕하세요, 사이람입니다. 

 

분석을 하다 보면 여러 조건에 따라서 노드나 링크를 따로 떼어 분석하는 경우가 있습니다. 

 

예를 들면 2001~2014년 논문 정보를 기초로 공저자의 협업관계를 보려고 할 때, 5개년마다 공저자들의 협업 관계가 어떻게 변화해 왔는지 알고 싶다면? 

 

첫번째 5개년의 논문 정보를 엑셀파일 1로 저장하고 이를 NetMiner에 불러옵니다. 

두번째 5개년의 논문 정보를 엑셀파일 2로 저장하고 이를 추가로 NetMiner에 불러옵니다. 

그리고 세번째 논문 정보를...(헥헥)

 

 

하지만, NetMiner에서는 위와 같은 반복 작업 없이 간단하게 데이터를 추출하여 분석할 수 있습니다. 

바로 NetMiner의 (Query) 기능을 이용하면 됩니다. 

 

NetMIner를 실행 후 전체 논문 정보를 불러온 다음 Tools > Query Composer 를 선택하면 다음과 같은 화면을 볼 수 있습니다. 

 

 

 

Tools > Query Composer

 

 

 

 

Query Composer 아이콘

 

 

 

 

Query 실행화면

 

 

 

 

만약 위의 논문 데이터의 논문 속성 중 연도 정보가 있다면 가운데 "Query" 라고 되어 있는 조건문 입력 창에 다음과 같이 적어줍니다. 

 

 "Year" >= 2001 and "Year" <= 2005

 "Year" >= 2006 and "Year" <= 2010

 "Year" >= 2011 and "Year" <= 2014

 

조건문을 다 입력한 다음 Apply를 클릭! 다음으로 Run을 클릭하면(Run을 안누르시고 안된다는 분들이 많아요 ㅠ ㅠ;;)

2001~2005년, 2006~2010년, 2011~2014년 각각의 논문 데이터를 구분하여 추출할 수 있습니다. 

그리고 최종적으로 5개년마다 달라지는 공저자의 협업 관계도 분석해 낼 수 있겠죠^^

 

참고로 NetMiner 쿼리에서는 노드 속성을 조건으로 이용할 수 있을 뿐 아니라 링크의 Source Node(링크가 시작되는 노드, , 만약 A가 B를 지목한 경우 A는 Source Node, B는 Target Node가 됩니다)와 Target Node의 속성을 조건으로 이용하여 노드 및 링크를 추출할 수도 있습니다. 

 

예를 들어 오른쪽 QuerySet status 에서 1모드 네트워크를 클릭하면 Short Cut에 아래와 같이 나타납니다. 

 

 

 

여기에서 Source Node의 Team 이 Finance인 경우(즉, Finance에 속해있는 사람이 누군가를 지목하여 링크가 발생한 경우)만 추출한다면 다음과 같이 적어주면 됩니다. 

 

@SOURCE."Team" ==  "Finance" (즉, @SOURCE."속성 항목" == "추출하고자 하는 속성 값")

 

 

그러면 조건문에 사용되는 연산자를 좀 더 자세히 알아보겠습니다. 

연산자는 조건문 입력 창에 직접 타이핑하거나 오른쪽 상단의 아이콘을 클릭하면 입력됩니다. 

 

 

연산자
설명
예시
and
A B 값이 포함된 변수()를 추출
"Gender" == Female" and "Team" == "HR"
성별이 여성이면서 팀이 HR인 경우만을 추출
or
A 또는 B인 변수()를 추출
"Gender" == "Female" or "Team" == "HR"
성별이 여성이거나 팀이 HR인 경우만을 추출
not
조건식을 부정하는 것만 추출 not "Gender" start "F"
성별이 "F"로 시작하지 않는 경우만을 추출
==
특정 변수에 특정 값을 가진 것만 추출
"Gender" == "Female"
성별이 여성인 경우만을 추출
!=
특정 변수에 특정 값을 제외한 변수를 추출
"Team" != "HR"
팀이 HR인 경우를 제외한 팀을 추출

특정 변수에 특정 값 이상인 변수를 추출
"Age" > 30.0
나이가 30세 이상인 경우만을 추출

특정 변수에 특정 값 이하인 변수를 추출
"Age" < 30.0
나이가 30세 이하인 경우만을 추출
>=
특정 변수에 특정 값과 같거나 이상인 변수를 추출
"Age" >= 30.0
나이가 30세 이거나 그 이상인 경우만을 추출
<=
특정 변수에 특정 값과 같거나 이하인 변수를 추출
"Age" <= 30.0
나이가 30세 이거나 그 이하인 경우만을 추출
start
특정 텍스트로 시작하는 값을 가진 변수를 추출
"Gender" start "Fem"
성별이 Fem으로 시작하는 경우만을 추출
end
특정 텍스트로 끝나는 값을 가진 변수를 추출
"Gender" end "male"
성별이 male로 끝나는 경우만을 추출.
contains
특정 텍스트를 포함하는 변수를 추출
"Gender" contains "male"
성별에 male을 포함하는 경우를 추출
toupper
괄호 안의 텍스트를 대문자로 변환
"Gender" == toupper("female")
toupper("female") FEMALE과 동일하게 취급 ("Gender" == FEAMLE)
tolower
괄호 안의 텍스트를 소문자로 변환
"Gender" == tolower("MALE")
tolower("MALE") male과 동일하게 취급 ("Gender" == male)
top
해당 속성 값이 가장 높은 n명을 추출
"Duration" top 5
근무년수가 가장 오래된 5명 추출
bottom
해당 속성 값이 가장 낮은 n명을 추출
"Duration" bottom 5
근무년수가 가장 낮은 5명 추출

 

 

 

연산자를 위의 방법대로 제대로 입력하면 다음과 같이 조건문의 연산자의 색상이 변하게 됩니다. 

 

 

 

 

 

 

다시 말해서 조건문을 잘못 입력하는 경우에는 색깔이 그대로 검정색으로 표시됩니다. 그러니까 색상이 변하지 않는 경우에는 조건문을 잘못 입력한 것은 아닌지 다시 한 번 체크해 주세요!

 

 

 

 

잘 쓰면 매우 유용한 기능이지만 많은 분들이 놓치고 있는 기능 중의 하나인 NetMiner의 쿼리!

본 포스팅을 통해 앞으로 유용하게 활용하시길 바랍니다. 

 

참고로 쿼리 기능은 NetMiner 라이선스 구입 시 전체패키지로 구입하셨거나 Tools 패키지를 선택하여 구입하신 경우에만 사용하실 수 있습니다. 

 

 

감사합니다. 

 

 

 

 

 

 

NetMiner 문의: netminer@cyram.com / Tel. 1660-4230

 

 

 

 

관련글 더보기

댓글 영역