我试图循环浏览中的股票列表,计算每只股票的最小值,然后将其放入一个单独的列表中。我查过类似的问题,但似乎没有一个能解决我的问题。
我的股票列表来自道琼斯指数,列表看起来像
library(tidyquant); library(dplyr)
DOW_st <- data.frame(tq_index("DOW")[,1])
DOW_st <- DOW_st %>% filter(row_number() <= n()-1)
DOW_st
symbol
1 UNH
2 GS
3 MSFT
4 HD
5 CAT
6 AMGN
7 V
8 MCD
9 CRM
10 AXP
11 HON
12 TRV
13 AAPL
14 JPM
15 AMZN
16 BA
17 IBM
18 PG
19 CVX
20 JNJ
21 MRK
22 DIS
23 MMM
24 NKE
25 WMT
26 KO
27 DOW
28 CSCO
29 VZ
然后,我用函数设置了空列表和循环。循环包括使用tq_get获取股票数据,并返回该时间段内的股票数据。当我输出数据时
DOW_st_data <- list()
for (i in DOW_st){
data_i <- tq_get(i, from = "1980-01-01", to = "2024-06-20", get = "stock.prices")
min <- min(data_i$close, na.rm = T)
comb <- cbind(i, min)
DOW_st_data <- rbind(DOW_st_data, comb)
}
DOW_st_data
i min
[1,] "UNH" "0.0299949999898672"
[2,] "GS" "0.0299949999898672"
[3,] "MSFT" "0.0299949999898672"
[4,] "HD" "0.0299949999898672"
[5,] "CAT" "0.0299949999898672"
[6,] "AMGN" "0.0299949999898672"
[7,] "V" "0.0299949999898672"
[8,] "MCD" "0.0299949999898672"
[9,] "CRM" "0.0299949999898672"
[10,] "AXP" "0.0299949999898672"
[11,] "HON" "0.0299949999898672"
[12,] "TRV" "0.0299949999898672"
[13,] "AAPL" "0.0299949999898672"
[14,] "JPM" "0.0299949999898672"
[15,] "AMZN" "0.0299949999898672"
[16,] "BA" "0.0299949999898672"
[17,] "IBM" "0.0299949999898672"
[18,] "PG" "0.0299949999898672"
[19,] "CVX" "0.0299949999898672"
[20,] "JNJ" "0.0299949999898672"
[21,] "MRK" "0.0299949999898672"
[22,] "DIS" "0.0299949999898672"
[23,] "MMM" "0.0299949999898672"
[24,] "NKE" "0.0299949999898672"
[25,] "WMT" "0.0299949999898672"
[26,] "KO" "0.0299949999898672"
[27,] "DOW" "0.0299949999898672"
[28,] "CSCO" "0.0299949999898672"
[29,] "VZ" "0.0299949999898672"
我尝试过使用[]以各种方式对数据进行索引,但总是得到大致相同的结果。任何指示都将不胜感激。