Привет. Я пытаюсь преобразовать следующий XML-код во фрейм данных в R. Однако я не могу, потому что в каждой записи отсутствуют значения.
RecordID 23063 содержит следующие данные с ActivityCreatedDate, ExpectedInstallDate, InvoiceTxnDate.Однако некоторые из следующих узлов не имеют всех этих элементов.В идентификаторе записи 23321 отсутствует InvoiceTxnDate и т. Д.
<?xml version="1.0" encoding="windows-1252" ?>
<Record>
<RecordID>23063</RecordID>
<ActivityCreatedDate>2018-12-11T19:00:00</ActivityCreatedDate>
<ExpectedInstallDate>2018-12-19T19:00:00</ExpectedInstallDate>
<InvoiceTxnDate>2018-12-13T19:00:00</InvoiceTxnDate>
</Record>
<Record>
<RecordID>23321</RecordID>
<ActivityCreatedDate>2018-10-15T18:00:00</ActivityCreatedDate>
<ExpectedInstallDate>2018-11-14T19:00:00</ExpectedInstallDate>
</Record>
<Record>
<RecordID>23566</RecordID>
<ActivityCreatedDate>2019-01-23T19:00:00</ActivityCreatedDate>
</Record>
<Record>
<RecordID>23217</RecordID>
<ActivityCreatedDate>2018-12-20T19:00:00</ActivityCreatedDate>
<ExpectedInstallDate>2019-01-23T19:00:00</ExpectedInstallDate>
<InvoiceTxnDate>2019-01-18T19:00:00</InvoiceTxnDate>
</Record>
<Record>
<RecordID>23325</RecordID>
<ActivityCreatedDate>2018-05-25T18:00:00</ActivityCreatedDate>
<ExpectedInstallDate>2019-01-23T19:00:00</ExpectedInstallDate>
</Record>
</end of file>
В настоящее время я использую xml2.Я использую read_xml, чтобы прочитать его в переменную, а затем xml_find_all и trimws, чтобы сохранить столбец в список.Затем я пытаюсь превратить мой список во фрейм данных, но это не удается, потому что измерения отключены.
Я хочу знать, как я могу превратить вышеуказанный XML в фрейм данных, который выглядит следующим образом:
RecordID ActivityCreatedDate ExpectedInstallDate InvoiceTxnDate
1 23063 2018-12-11T19:00:00 2018-12-19T19:00:00 2018-12-13T19:00:00
2 23321 2018-10-15T18:00:00 2018-11-14T19:00:00 NA
3 23566 2019-01-23T19:00:00 NA NA
4 23217 2018-12-20T19:00:00 2019-01-23T19:00:00 2019-01-18T19:00:00
5 23325 2018-05-25T18:00:00 2019-01-23T19:00:00 NA
В этом случае есть способ перебрать каждый RecordID и добавить
<InvoiceTxnDate>NA</InvoiceTxnDate> or a <ExpectedInstallDate>NA</ExpectedInstallDate>
на узел, если он отсутствует?Я был бы более рад поделиться R-кодом, который у меня есть, для данных, которые все единообразны.Также, если этот вопрос не имеет смысла, пожалуйста, дайте мне знать, и я объясню больше.
Спасибо