Как объединить векторы с различным числом или строками в кадре данных в R. Вот пример. Каждый вектор имеет 7 или 9 строк. sourceVersion и устройство являются дополнительными двумя строками. Я хочу, чтобы они были включены в кадр данных и оставлены пустыми или установлены в NA для 7-векторных наблюдений, как показано в приведенной ниже таблице.R Комбинированные векторы с разной длиной строки
Я хочу данные в кадре данных, как это.
type sourceName sourceVersion device unit creationDate startDate endDate value
HKQuantityTypeIdentifierFlightsClimbed Ryan Praskievicz iPhone 9.3.2 <<HKDevice: 0x15a4af3f0>, name:iPhone, manufacturer:Apple, model:iPhone, hardware:iPhone8,1, software:9.3.2> count 6/2/2016 12:27 6/2/2016 12:09 6/2/2016 12:09 1
HKQuantityTypeIdentifierStepCount Ryan Praskievicz iPhone count 10/2/2014 8:30 9/24/2014 15:07 9/24/2014 15:07 7
Это то, что я пробовал.
library(XML)
xmlstr <- '<?xml version="1.0" encoding="UTF-8"?>
<HealthData locale="en_US">
<ExportDate value="2016-06-02 14:05:23 -0400"/>
<Me HKCharacteristicTypeIdentifierDateOfBirth="" HKCharacteristicTypeIdentifierBiologicalSex="HKBiologicalSexNotSet" HKCharacteristicTypeIdentifierBloodType="HKBloodTypeNotSet" HKCharacteristicTypeIdentifierFitzpatrickSkinType="HKFitzpatrickSkinTypeNotSet"/>
<Record type="HKQuantityTypeIdentifierStepCount" sourceName="Ryan Praskievicz iPhone" unit="count" creationDate="2014-10-02 08:30:17 -0400" startDate="2014-09-24 15:07:06 -0400" endDate="2014-09-24 15:07:11 -0400" value="7"/> <Record type="HKQuantityTypeIdentifierFlightsClimbed" sourceName="Ryan Praskievicz iPhone" sourceVersion="9.3.2" device="<<HKDevice: 0x15a4af3f0>, name:iPhone, manufacturer:Apple, model:iPhone, hardware:iPhone8,1, software:9.3.2>" unit="count" creationDate="2016-06-02 12:27:46 -0400" startDate="2016-06-02 12:09:29 -0400" endDate="2016-06-02 12:09:29 -0400" value="1"/> </HealthData>'
xml <- xmlParse(xmlstr)
recordAttribs <- xpathSApply(doc=xml, path="//HealthData/Record", xmlAttrs)
df <- data.frame(t(recordAttribs))
df
Это то, что я получаю для вывода на R консоли
X1
1 HKQuantityTypeIdentifierStepCount, Ryan Praskievicz iPhone, count, 2014-10-02 08:30:17 -0400, 2014-09-24 15:07:06 -0400, 2014-09-24 15:07:11 -0400, 7
X2
1 HKQuantityTypeIdentifierFlightsClimbed, Ryan Praskievicz iPhone, 9.3.2, <<HKDevice: 0x15a4af3f0>, name:iPhone, manufacturer:Apple, model:iPhone, hardware:iPhone8,1, software:9.3.2>, count, 2016-06-02 12:27:46 -0400, 2016-06-02 12:09:29 -0400, 2016-06-02 12:09:29 -0400, 1
Would [это] (http://webcache.googleusercontent.com/search?q=cache:lPRvnOOSAgoJ:www.inside-r.org/packages/ cran/qpcR/docs/cbind.na + & cd = 4 & hl = en & ct = clnk & gl = us) делают то, что вы ищете? –
Прежде всего, вы пытаетесь связать строки с различным количеством столбцов, а не связывать столбцы с различным количеством строк. При этом, не так ли, в общем, проблема с выравниванием столбцов? То есть, если в одной строке меньше столбцов, чем другой, откуда вы знаете, какие столбцы отсутствуют, если вы не можете каким-то образом вывести это из данных? – aichao
@aichao Кажется, что те же две строки отсутствуют - sourceVersion и устройство. – Warner