У меня есть список фреймов данных с данными о запасах, и я хочу добавить новый столбец с возвратом цены акций для каждого фрейма данных в списке. Кадры данных выглядят следующим образом:
ABB.ST.Open ABB.ST.High ABB.ST.Low ABB.ST.Close ABB.ST.Volume ABB.ST.Adjusted Date
1 166.4 167.4 165.5 166.0 944525 162.1181 2015-01-02
2 165.6 166.6 164.4 164.4 1013670 160.5555 2015-01-05
3 161.2 161.6 159.1 159.1 2546062 155.3794 2015-01-07
4 160.3 163.3 159.2 163.0 1946157 159.1882 2015-01-08
5 162.8 162.8 160.0 160.6 1885969 156.8444 2015-01-09
6 161.5 162.6 160.6 161.1 1795966 157.3327 2015-01-12
7 159.8 160.6 158.3 160.0 2445040 156.2584 2015-01-13
Delt.1.arithmetic
1 NA
2 -0.0066959806
3 -0.0127628163
4 0.0168292916
5 -0.0002389207
6 0.0141549696
7 -0.0044953302
Это продолжается до сегодняшней даты, т.е. около 1300 строк.
Теперь нужно добавить возврат первого столбца ABB.ST.Open
с функция Delt
из пакета quantmod
.
Этот код работает, когда я применяю его только к фрейму данных вне списка:
ABB.ST$Return <- Delt(ABB.ST[,1])
Но как добавить этот столбец ко всему фрейму данных в list
?
Мой список имен master_df
, и я пробовал этот код, но он не работает ...
Return <- function(x){
master_df[[x]]$Return <- Delt(master_df[[x]][,1])
}
test2 <- lapply(master_df, Return(x))
ОБНОВЛЕНИЕ:
У меня есть data.frame в списке, где мое имя списка master_df
, это мой код, куда я загружаю данные из Yahoo Finance:
as.matrix(LargeCapOMXS[,7])
- мой список имен символов от Yahoo
Stocklist <- as.matrix(LargeCapOMXS[,7]) #get names of stocks
master_df <- list() #create list to fill with data
for(i in seq(length(Stocklist))){ #loop to fill list with downloaded stock data, by company
Stockindex = Stocklist[i]
getSymbols(Stockindex, src="yahoo", from="2015-01-01", to="2020-01-01", verbose = TRUE)
master_df[[i]] <- as.data.frame(get(Stockindex))
master_df[[i]]$Date = row.names(master_df[[i]])
row.names( master_df[[i]]) = NULL
}
}