【问题标题】:return the output of `getSymbols()` as a data frame将 `getSymbols()` 的输出作为数据框返回
【发布时间】:2018-11-22 21:07:53
【问题描述】:

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

 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 很陌生。谢谢。

【问题讨论】:

  • 试试tyu2 &lt;- as.data.frame(comp.name, stringsAsFactors = FALSE)
  • 是的,它会将其转换为数据库,但由于 readline 提示,我要访问的数据库仍然是 tyu2 数据库中的一个字符。有什么办法可以将该字符类转换回 xts zoo 类?
  • 你能帮我吗@rosscova
  • 您的意思是要将getSymbols 的输出放入数据框中吗?我不知道该函数的作用,但也许可以尝试将该行更改为comp.name &lt;- getSymbols(comp.name...
  • 您需要编辑您的问题;你不想 factor 上课,stringsAsFactors = FALSE 避免这种情况。但似乎你也不想要 character 类。你想上什么课?

标签: r readline xts zoo quantmod


【解决方案1】:

getSymbolsauto 默认将返回的值分配给全局环境,这意味着您将获得一个与您查询的公司同名的对象。要停止这种行为,请将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)

【讨论】:

  • 非常感谢
  • 在不使用auto.assign 的情况下使用tyu2 &lt;- as.data.frame(get(comp.name)) 也能正常工作。但是 +1 发现了这一点
  • 好点@Shique,我知道有办法做到这一点,但想不出。不错。
【解决方案2】:

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

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

【讨论】:

  • @Shique 领先你 40 秒 :)
  • @rosscova 我真的必须学习如何用所有十个手指打字;-)
  • @Shique 如果您将您的评论转换为答案,我将删除此...
  • 是的,它会将其转换为数据库,但由于 readline 提示,我要访问的数据库仍然是 tyu2 数据库中的一个字符。有什么办法可以将该字符类转换回 xts zoo 类?
  • @Wimpel 我的评论似乎不是解决方案,因为 rahul yadav 不想要 character 类但 xts zoo
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多