将`getSymbols()`的输出作为数据帧返回

时间:2018-06-13 10:11:13

标签: r readline xts zoo quantmod

如果我尝试从用户那里获取输入并将数据框保存到另一个中以便在代码中进一步使用

 comp.name <- readline(prompt = "Enter the company name: ")
 getSymbols(comp.name , src = "yahoo", verbose = TRUE, from = "2018-03-01")
 tyu2 <- as.data.frame(comp.name)

我没有收回数据,只有一个具有单一因子值的数据框。请提出建议。进一步的代码就像

tyu <- tyu2$(comp.name).Open
x <- row.names(tyu2)
final <- length(tyu)
final <- as.numeric(final)
p <- ggplot(data = tyu2 , aes(x= x ,y=tyu))+geom_bar(stat = "identity", fill = "blue")+ theme(axis.text.x = element_text(angle = 90))
p

这可能是一个愚蠢的错误。我很擅长R.谢谢。

2 个答案:

答案 0 :(得分:1)

getSymbols默认情况下会自动将返回的值分配给全局环境,这意味着您将获得一个与您查询的公司同名的对象。要停止该行为,请将auto.assign设置为FALSE。这样,您可以自己将返回的值分配给对象:

comp.name <- readline(prompt = "Enter the company name: ")
tyu2 <- getSymbols(comp.name ,
                   src = "yahoo",
                   verbose = TRUE,
                   from = "2018-03-01",
                   auto.assign = FALSE)
tyu2 <- as.data.frame(tyu2)

答案 1 :(得分:0)

要防止在创建data.frame时将字符向量转换为因子,请在创建data.frame时使用stringsAsFactors = FALSE

 tyu2 <- as.data.frame(comp.name, stringsAsFactors = FALSE)