【发布时间】:2018-03-13 17:07:36
【问题描述】:
我正在尝试在 R 数据帧中运行 for 循环以提取股票数据帧的最后价格。我无法将结果附加到原始数据框并将其用作第二列。这是迄今为止我正在使用的代码。我可以打印但不能添加到新列。我尝试将循环值设置为等于新列,但出现错误
for (i in df_financials$Ticker){
df_financials$Last_Price=(bdp(i,'PX_LAST'))
}
Error in `$<-.data.frame`(`*tmp*`, "Last_Price", value = list(PX_LAST =
NA_real_)) :
replacement has 1 row, data has 147
Print(df_financials)
Ticker
1 ENH Equity
2 AXS Equity
3 BOH Equity
4 CNA Equity
5 TRH Equity
【问题讨论】:
-
显示模拟数据。
-
你需要
df_financials$Last_Price[i]=bdp(i, 'PX_Last')。就目前而言,您正在尝试用单个值替换整个列。但是还有更直观的命令可以做同样的事情,比如dplyr的mutate函数,如下面的 Lyngbakr 评论所示。注意你需要在dplyr之前安装plyr -
如果
bdp是矢量化的,你可以像df_financials %>% mutate(Last_Price = bdp(Ticker, 'PX_LAST'))这样使用dplyr包。