R-XML 파일
XML은 표준 ASCII 텍스트를 사용하여 World Wide Web, 인트라넷 및 다른 곳에서 파일 형식과 데이터를 모두 공유하는 파일 형식입니다. XML (Extensible Markup Language)을 나타냅니다. HTML과 유사하게 마크 업 태그를 포함합니다. 그러나 마크 업 태그가 페이지의 구조를 설명하는 HTML과 달리 xml에서 마크 업 태그는 파일에 포함 된 데이터의 의미를 설명합니다.
"XML"패키지를 사용하여 R에서 xml 파일을 읽을 수 있습니다. 이 패키지는 다음 명령을 사용하여 설치할 수 있습니다.
install.packages("XML")
입력 데이터
아래 데이터를 메모장과 같은 텍스트 편집기에 복사하여 XMl 파일을 만듭니다. 파일을.xml 확장자 및 파일 유형 선택 all files(*.*).
<RECORDS>
<EMPLOYEE>
<ID>1</ID>
<NAME>Rick</NAME>
<SALARY>623.3</SALARY>
<STARTDATE>1/1/2012</STARTDATE>
<DEPT>IT</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>2</ID>
<NAME>Dan</NAME>
<SALARY>515.2</SALARY>
<STARTDATE>9/23/2013</STARTDATE>
<DEPT>Operations</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>3</ID>
<NAME>Michelle</NAME>
<SALARY>611</SALARY>
<STARTDATE>11/15/2014</STARTDATE>
<DEPT>IT</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>4</ID>
<NAME>Ryan</NAME>
<SALARY>729</SALARY>
<STARTDATE>5/11/2014</STARTDATE>
<DEPT>HR</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>5</ID>
<NAME>Gary</NAME>
<SALARY>843.25</SALARY>
<STARTDATE>3/27/2015</STARTDATE>
<DEPT>Finance</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>6</ID>
<NAME>Nina</NAME>
<SALARY>578</SALARY>
<STARTDATE>5/21/2013</STARTDATE>
<DEPT>IT</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>7</ID>
<NAME>Simon</NAME>
<SALARY>632.8</SALARY>
<STARTDATE>7/30/2013</STARTDATE>
<DEPT>Operations</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>8</ID>
<NAME>Guru</NAME>
<SALARY>722.5</SALARY>
<STARTDATE>6/17/2014</STARTDATE>
<DEPT>Finance</DEPT>
</EMPLOYEE>
</RECORDS>
XML 파일 읽기
xml 파일은 함수를 사용하여 R에서 읽습니다. xmlParse(). R에 목록으로 저장됩니다.
# Load the package required to read XML files.
library("XML")
# Also load the other required package.
library("methods")
# Give the input file name to the function.
result <- xmlParse(file = "input.xml")
# Print the result.
print(result)
위 코드를 실행하면 다음과 같은 결과가 생성됩니다.
1
Rick
623.3
1/1/2012
IT
2
Dan
515.2
9/23/2013
Operations
3
Michelle
611
11/15/2014
IT
4
Ryan
729
5/11/2014
HR
5
Gary
843.25
3/27/2015
Finance
6
Nina
578
5/21/2013
IT
7
Simon
632.8
7/30/2013
Operations
8
Guru
722.5
6/17/2014
Finance
XML 파일에있는 노드 수 가져 오기
# Load the packages required to read XML files.
library("XML")
library("methods")
# Give the input file name to the function.
result <- xmlParse(file = "input.xml")
# Exract the root node form the xml file.
rootnode <- xmlRoot(result)
# Find number of nodes in the root.
rootsize <- xmlSize(rootnode)
# Print the result.
print(rootsize)
위 코드를 실행하면 다음과 같은 결과가 생성됩니다.
output
[1] 8
첫 번째 노드의 세부 사항
파싱 된 파일의 첫 번째 레코드를 살펴 보겠습니다. 최상위 노드에있는 다양한 요소에 대한 아이디어를 제공합니다.
# Load the packages required to read XML files.
library("XML")
library("methods")
# Give the input file name to the function.
result <- xmlParse(file = "input.xml")
# Exract the root node form the xml file.
rootnode <- xmlRoot(result)
# Print the result.
print(rootnode[1])
위 코드를 실행하면 다음과 같은 결과가 생성됩니다.
$EMPLOYEE
1
Rick
623.3
1/1/2012
IT
attr(,"class")
[1] "XMLInternalNodeList" "XMLNodeList"
노드의 다른 요소 얻기
# Load the packages required to read XML files.
library("XML")
library("methods")
# Give the input file name to the function.
result <- xmlParse(file = "input.xml")
# Exract the root node form the xml file.
rootnode <- xmlRoot(result)
# Get the first element of the first node.
print(rootnode[[1]][[1]])
# Get the fifth element of the first node.
print(rootnode[[1]][[5]])
# Get the second element of the third node.
print(rootnode[[3]][[2]])
위 코드를 실행하면 다음과 같은 결과가 생성됩니다.
1
IT
Michelle
XML에서 데이터 프레임으로
대용량 파일의 데이터를 효과적으로 처리하기 위해 xml 파일의 데이터를 데이터 프레임으로 읽습니다. 그런 다음 데이터 분석을 위해 데이터 프레임을 처리합니다.
# Load the packages required to read XML files.
library("XML")
library("methods")
# Convert the input xml file to a data frame.
xmldataframe <- xmlToDataFrame("input.xml")
print(xmldataframe)
위 코드를 실행하면 다음과 같은 결과가 생성됩니다.
ID NAME SALARY STARTDATE DEPT
1 1 Rick 623.30 2012-01-01 IT
2 2 Dan 515.20 2013-09-23 Operations
3 3 Michelle 611.00 2014-11-15 IT
4 4 Ryan 729.00 2014-05-11 HR
5 NA Gary 843.25 2015-03-27 Finance
6 6 Nina 578.00 2013-05-21 IT
7 7 Simon 632.80 2013-07-30 Operations
8 8 Guru 722.50 2014-06-17 Finance
이제 데이터가 데이터 프레임으로 사용 가능하므로 데이터 프레임 관련 기능을 사용하여 파일을 읽고 조작 할 수 있습니다.