2012-01-05 2 views
1

После вызова merge.xts мой результирующий объект временного ряда имеет 3 столбца с именем A.1, B.1, C.1. В исходных объектах xts есть столбцы A, B, C. Я предполагаю, что слияние было выполнено на всех общих столбцах в соответствии с документацией.R: общие столбцы merge.xts

Я проверил содержимое колонки A, B, C и A.1, B.1, C.1. Вызов my.merged[my.merged$A.1 != my.merged$A, ] не возвращает строк для всех этих столбцов.

Почему общие столбцы не были свернуты только в одном наборе?

ответ

4

?merge.xts очень ясно говорит, что он «используется для выполнения операции слияния на объектах« xts »на раз (указатель)». Нигде не говорится, что слияние выполняется на общих столбцах. Вероятно, вы прочитали это в ?merge, ссылаясь на метод data.frame.

+0

Спасибо. Есть ли способ избежать двойных столбцов в файле merge.xts(), кроме удаления их вручную после слияния? –

+2

@RobertKubrick: удалите их перед слиянием или удалите их после слияния. Это добавило бы большую сложность в 'merge.xts', чтобы проверить, были ли столбцы равны в двух или более объектах, которые были объединены (например, что, если данные одинаковы, но имена столбцов разные? Каков допуск для сравнения с плавающей запятой числа? что, если данные в столбцах в двух объектах одинаковы, но одинаково названный столбец в третьем объекте отличается? и т. д. и т. д.). –

2

Я думаю, что вы, возможно, хотели, было rbind, а не merge. Я писал об этом, с примерами данных, на http://darrendev.blogspot.jp/2012/08/small-rxts-code-snippets-and-tips.html (см. Пункты 6a и 6b).

Если у вас есть одна и та же метка времени в обоих объектах xts, которые вы объединяете, вы получите повторяющиеся строки. Таким образом, чтобы получить желаемый результат, вы удалите дубликаты как шаг после процесса.

Смежные вопросы