Я получаю похожую ошибку.например, когда я сейчас запускаю bbands.demo, кажется, что applyIndicator фактически изменяет имена столбцов в соответствии с приведенным ниже кодом (похоже, что это новое поведение, так как я смог найти старый пакет на другом компьютере, на котором этого не былопроблема).
Сразу после применения запустите код для applyIndicator, как в примере:
***** Обратите внимание на исходные имена столбцов:
Обзор [2]> head (tmp_val) dn mavg up pctB 2007-01-03 NA NA NA NA 2007-01-04 NA NA NA NA 2007-01-05 NANA NA NA 2007-01-08 NA NA NA NA 2007-01-09 NA NA NA NA 2007-01-10 NA NA NA NA
похоже, это «новый код», вставленный поверх существующегокод.(см. старый код ниже)
Просмотр [2]>
debug: if (ncol(tmp_val) == 1) {
colnames(tmp_val) <- indicator$label
} else {
colnames(tmp_val) <- paste(indicator$label, seq(1, ncol(tmp_val)),
sep = ".")
}
В результате:
Просмотр [2]> head (tmp_val)
**** УВЕДОМЛЕНИЕ КАК ИЗМЕНИЛИСЯ ИМЕНА КОЛОННЫ
BBands.1 BBands.2 BBands.3 BBands.4
2007-01-03 NA NA NA NA 2007-01-04 NA NA NA NA2007-01-05 НС НА НА НАН 2007-01-08 ДА НА НА НАН 2007-01-09 ДС НА НА НАН 2007-01-10 ДЛ НС ДА НС
* приводит к следующей ошибке при вызове, как показано ниже:
Ошибка в if (length (j) == 0 || (length (j) == 1 && j == 0)) {: отсутствует значение там, где требуется ИСТИНА / ЛОЖЬ. Дополнительно: Предупреждающее сообщение: In download.file (вставьте (yahoo.URL, "s =", Symbols.name, "& a =", from.m,: загруженная длина 83602! = сообщаетсядлина 200
извещение против старого кода:
Просмотр [2]>
debug: if (is.null(colnames(tmp_val))) {
if (ncol(tmp_val) == 1) {
colnames(tmp_val) <- indicator$label
}
else {
colnames(tmp_val) <- paste(indicator$label, seq(1, ncol(tmp_val)),
sep = ".")
}
} else {
if (ncol(tmp_val) > 1)
colnames(tmp_val) <- paste(indicator$label, colnames(tmp_val),
sep = ".")
}
В демонстрационном примере bbands up заменяется на BBands.ind.1 (ноя не могу заставить его работать, если я заменю 'up' на BBands.ind.1).
stratBBands <- add.signal(stratBBands,name="sigCrossover",arguments = list(columns=c("Close","up"),relationship="gt"),label="Cl.gt.UpperBand")
stratBBands <- add.signal(stratBBands,name="sigCrossover",arguments = list(columns=c("Close","dn"),relationship="lt"),label="Cl.lt.LowerBand")
stratBBands <- add.signal(stratBBands,name="sigCrossover",arguments = list(columns=c("High","Low","mavg"),relationship="op"),label="Cross.Mid")