Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用带R的quant包使用For循环提取每日股票收益_R_For Loop_Quantmod_Stocks - Fatal编程技术网

使用带R的quant包使用For循环提取每日股票收益

使用带R的quant包使用For循环提取每日股票收益,r,for-loop,quantmod,stocks,R,For Loop,Quantmod,Stocks,我是一个完全的初学者。这是一项任务,目标是创建一个For循环,从2012年到今天,为这些股票中的每一只拉每日股票回报 我可以通过简单地拉动这些年来获得每年的回报,但我不知道如何创建for循环。我尝试创建一个,但只能通过每年重复代码来实现 下面的代码是我在这些年中开始使用的代码,但之后我会在每年重复它。我的过程似乎完全是多余和低效的 微软 谷歌 苹果公司。 Facebook公司。 X=美国钢铁公司。 星巴克公司。 TGT=目标商店公司。 DNKN=邓肯甜甜圈 微软 MSFT1我可以提出这个解决方案

我是一个完全的初学者。这是一项任务,目标是创建一个For循环,从2012年到今天,为这些股票中的每一只拉每日股票回报

我可以通过简单地拉动这些年来获得每年的回报,但我不知道如何创建for循环。我尝试创建一个,但只能通过每年重复代码来实现

下面的代码是我在这些年中开始使用的代码,但之后我会在每年重复它。我的过程似乎完全是多余和低效的

微软 谷歌 苹果公司。 Facebook公司。 X=美国钢铁公司。 星巴克公司。 TGT=目标商店公司。 DNKN=邓肯甜甜圈 微软
MSFT1我可以提出这个解决方案,但在这里您并不真正需要for循环

我以微软为例

#zoo and xts are need to allows quantmod library to work (I got an error message from R...
library(zoo)
library(xts)
library(quantmod)

MFSFT <- NULL
    for(i in 2012:2017){
      MSFT1 <- getSymbols( "MSFT", auto.assign = FALSE )
      MFSFT2012 <- MSFT1$MSFT.Close[as.character(i),]
      MFSFT <- rbind(MFSFT, MFSFT2012) 
    }
然而,如果你想让一个for循环直接进入几行中的所有股票,你可以这样做

Stocks <- c("MSFT", "GOOG", "AAPL", "FB", "X", "SBUX", "TGT", "DNKN")
Daily_Stock <- NULL
for(i in Stocks){
  df1 <- getSymbols(i, auto.assign = FALSE)
  Close <- df1[as.character(2012:2017),4]
  Daily_Stock <- cbind(Daily_Stock, Close)
}

我可以提出这个解决方案,但在这里您并不真正需要for循环

我以微软为例

#zoo and xts are need to allows quantmod library to work (I got an error message from R...
library(zoo)
library(xts)
library(quantmod)

MFSFT <- NULL
    for(i in 2012:2017){
      MSFT1 <- getSymbols( "MSFT", auto.assign = FALSE )
      MFSFT2012 <- MSFT1$MSFT.Close[as.character(i),]
      MFSFT <- rbind(MFSFT, MFSFT2012) 
    }
然而,如果你想让一个for循环直接进入几行中的所有股票,你可以这样做

Stocks <- c("MSFT", "GOOG", "AAPL", "FB", "X", "SBUX", "TGT", "DNKN")
Daily_Stock <- NULL
for(i in Stocks){
  df1 <- getSymbols(i, auto.assign = FALSE)
  Close <- df1[as.character(2012:2017),4]
  Daily_Stock <- cbind(Daily_Stock, Close)
}

这样做不需要for循环,也不需要for循环。
FB1 <- getSymbols( "FB", auto.assign = FALSE )
FB2012 <- FB1$FB.Close['2012']
FB2012
XSTEEL1 <- getSymbols( "X", auto.assign = FALSE )
XSTEEL12012 <- XSTEEL1$X.Close['2012']
XSTEEL12012
SBUX1 <- getSymbols( "SBUX", auto.assign = FALSE )
SBUX12012 <- SBUX1$SBUX.Close['2012']
SBUX12012
TGT1 <- getSymbols( "TGT", auto.assign = FALSE )
TGT12012 <- TGT1$TGT.Close['2012']
TGT12012
DNKN1 <- getSymbols( "DNKN", auto.assign = FALSE )
DNKN12012 <- DNKN1$DNKN.Close['2012']
DNKN12012
#zoo and xts are need to allows quantmod library to work (I got an error message from R...
library(zoo)
library(xts)
library(quantmod)

MFSFT <- NULL
    for(i in 2012:2017){
      MSFT1 <- getSymbols( "MSFT", auto.assign = FALSE )
      MFSFT2012 <- MSFT1$MSFT.Close[as.character(i),]
      MFSFT <- rbind(MFSFT, MFSFT2012) 
    }
head(MFSFT)
                MSFT.Close
2012-01-03      26.77
2012-01-04      27.40
2012-01-05      27.68
2012-01-06      28.11
2012-01-09      27.74
2012-01-10      27.84
Stocks <- c("MSFT", "GOOG", "AAPL", "FB", "X", "SBUX", "TGT", "DNKN")
Daily_Stock <- NULL
for(i in Stocks){
  df1 <- getSymbols(i, auto.assign = FALSE)
  Close <- df1[as.character(2012:2017),4]
  Daily_Stock <- cbind(Daily_Stock, Close)
}
head(Daily_Stock)

               MSFT.Close GOOG.Close AAPL.Close FB.Close X.Close SBUX.Close TGT.Close DNKN.Close
2012-01-03      26.77   331.4626   58.74714       NA   28.17     22.645     51.12      24.74
2012-01-04      27.40   332.8922   59.06286       NA   28.44     23.085     50.00      24.73
2012-01-05      27.68   328.2745   59.71857       NA   27.79     23.180     48.51      25.17
2012-01-06      28.11   323.7963   60.34286       NA   27.30     23.360     48.95      25.47
2012-01-09      27.74   310.0678   60.24714       NA   26.78     23.295     48.57      25.21
2012-01-10      27.84   310.4065   60.46286       NA   27.29     23.410     48.79      25.42