У меня есть объект списка xts, я пытаюсь получить даты, присутствующие в моем списке, затем в векторе, который будет использоваться последним как индекс xts в дальнейшей обработке. Хотя мои данные включают отметку времени, для этой иллюстрации я собираю данные YHOO из Google. Эти данные не имеют элемента времени только даты, но это достаточно хорошо. Вам нужно quantmod
. Я тяну данные, а затем создать список разделить YHOO на недельные субкомпонентами со следующим кодом:strptime() ведет себя по-разному в анонимной функции, чем я ожидал
library(quantmod)
library(xts)
getSymbols("YHOO",src="google")
yhooL <- split.xts(YHOO,"weeks")
Чтобы получить дату из первой части yhooL я прохожу этот код:
strptime(index(yhooL[[1]][1]),format="%Y-%m-%d")
Работает так, как ожидалось, и я получаю свою дату. Но чтобы получить все даты из первой строки каждой недели, используя vapply
strptime()
возвращает все свои одиннадцать элементов $ sec, $ min ... days, week of year. Это не дает мне дату в формате, который я предоставил. То, что я пытаюсь достичь, - это вернуть дату из первой строки в этом конкретном формате. Я не уверен, что значение для передачи аргумента FUN.VALUE из vapply()
vapply(yhooL, function(i) {strptime(index(i[1,]), format ="%Y-%m-%d")},double(1))
Я также попытался POSIXct(1)
для FUN.VALUE
и кучу других, догадывался без удачи на самом деле.
Можете ли вы попробовать как.Date()? – Gopala
для FUN.VALUE? если это то, что вы имели в виду, потому что ошибка возникает, потому что strptime() возвращает 11 элементов, и функция ожидает 1. Это 11 per (i) вместо 1 per (i). – user3507767
'strptime' преобразует строки в объекты POSIXlt. 'index' возвращает объект, основанный на времени. Итак, непонятно, зачем вам «strptime». –