Віднімання означає від розрахунку ставить відповідь у списку?

У мене є функція, яка циклізує два списки сперти і поєднує їх у один з наступних:

spread = Table[{gld[[i, 1]], (gld[[i, 2]] - gdx[[i, 2]]) }, 
               {i, 1, Length[gld], 1}]

Це чудово працює, і генерує відповіді у вигляді:

{{2009, 6, 1}, 52.72}

Але коли я додаю віднімання, наступним чином:

spread = Table[{gld[[i, 1]], (gld[[i, 2]] - gdx[[i, 2]]) - meanspread }, 
               {i, 1, Length[gld], 1}]

Я отримую відповіді у форматі:

{{2009, 6, 1}, {-20.2896}}

Це викликає проблеми, коли я хочу використовувати DateLinePlot (всі дані знаходяться в крайньому правому куті графіка, і графік непридатний для використання.

Чи може хто-небудь запропонувати, що може відбуватися тут, і як я можу уникнути цього?

Дякую!

0

3 Відповіді

Швидше за все, означає поширювати не є номером, а одним списком елементів, наприклад {1.1} . Неможливо сказати, не знаючи більше деталей і маючи вибірку всіх даних/змінних, які ви використовуєте.

4
додано

Я не можу це зробити, відновлюючи свої вклади, як тільки зможу. Це дійсно залежить від того, як ви обчислюєте meanpread .

(*In[2]:= *)
gld = FinancialData["NYSE:GLD", "Close", {"June 1, 2009", DateString[], "Day"}];
gdx = FinancialData["NYSE:GDX", "Close", {"June 1, 2009", DateString[], "Day"}];

(*In[5]:= *)
First[spread = Table[{gld[[i, 1]], (gld[[i, 2]] - gdx[[i, 2]])}, {i, 1, Length[gld], 1}]]

(*Out[5]= *)
{{2009, 6, 1}, 52.72}

(*In[8]:= *)
meanspread = Mean[spread[[All, 2]]]

(*Out[8]= *)
74.0373

(*In[9]:= *)
First[Table[{gld[[i, 1]], (gld[[i, 2]] - gdx[[i, 2]]) - meanspread}, {i, 1, Length[gld], 1}]]

(*Out[9]= *)
{{2009, 6, 1}, -21.3173}
3
додано
Добре здогадайтеся про те, що стоїть за даними ОП. Звичайно, ви повинні бути досвідченим інвестором.
додано Автор Sjoerd C. de Vries, джерело
@Sjoerd Я просто запитав Wolfram | Alpha про те, які 'gld' та 'gdx' були, і ці цифри виправлені. Правильне використання описових ідентифікаторів змінених за допомогою OP.
додано Автор Brett Champion, джерело

Я думаю, ви скористалися б простою конструкцією.

spread = {gld[[All, 1]], gld[[All, 2]] - gdx[[All, 2]] - meanspread}\[Transpose]

Як вже було сказано, якщо означає поширювати це одне чисельне значення, а не список, висновок повинен бути правильним.

0
додано