- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Shiny 的新手,在这里完成了 Shiny 教程: http://shiny.rstudio.com/tutorial/
在第 6 课中,本教程向我们展示了如何创建一个应用程序,您可以在其中输入股票代码和日期范围以在主面板上查看其图表。
我试图更进一步,将应用程序更改为采用 2 个股票代码并将它们绘制在同一个图表上以比较它们随时间变化的应用程序(重叠在同一个图表上)。
我已经将 server.R 修改为:
library(quantmod)
shinyServer(function(input, output) {
dataInput <- reactive({
getSymbols(c(input$symb1, input$symb2), src = "yahoo",
from = input$dates[1],
to = input$dates[2],
auto.assign = TRUE)
})
output$plot <- renderPlot({
chartSeries(dataInput(), theme = chartTheme("white"),
type = "line", log.scale = input$log, TA = NULL)
})
})
我的 uiR 是:
library(shiny)
shinyUI(fluidPage(
titlePanel("StockComp"),
sidebarLayout(
sidebarPanel(
helpText("Select two stocks and a time frame to compare.
Information will be collected from yahoo finance."),
textInput("symb1", "1st Stock Symbol", "GOOG"),
textInput("symb2", "2nd Stock Symbol", "AAPL"),
dateRangeInput("dates",
"Date range",
start = "2012-01-01",
end = as.character(Sys.Date())),
actionButton("get", "Compare Stocks"),
br(),
br(),
checkboxInput("log", "Plot y axis on log scale",
value = FALSE)
),
mainPanel(plotOutput("plot"))
)
))
我得到:
try.xts(x, error = "chartSeries requires an xtsible object") 错误: chartSeries 需要一个 xtsible 对象
我曾尝试将 dataInput 转换为 XTS,但由于我对发生的事情的理解有限,XTS 和响应式(Reactive)似乎给我带来了很多问题。
最佳答案
正如@RHertel 提到的,这不是那么容易做到的。但只是为了说明,我稍微调整了您的 server.R
脚本,这样您就可以看到结果如何。我在脚本中添加了一些注释,以便您了解更改内容。
首先,我将两个数据集分开,因为一旦设置了 auto.assign=TRUE
,您就不能再调用 dataInput
,希望它返回两个数据集。 auto.assign=TRUE
的作用是自动将您的两个数据集分别分配给全局环境。所以在这种情况下有一种不同的方式来调用数据集。为了避免麻烦,将两个数据集分开,这样您就可以设置 auto.assign=FALSE
并从 `dataInput.
接下来,我将这两个数据集存储在一个列表中,以便您稍后可以在脚本中的 output$plot
中分别调用它们。
最后,我添加了 TA
参数,正如@RHertel 上面所解释的那样。我必须使用 paste
功能来自动执行该过程。
如您所见,输出看起来很难看,仍然需要一些清理。但我只是想让你知道它会是什么样子。我不是金融专家,但我几乎从不希望在一张图表上看到多个股票价格,因为它们可能会有很大差异,你可能会得到如下图所示的奇怪图表。为了标准化比例,通常将股票返回绘制在一张图表上,因为即使价格可能不同,返回也有 0-100% 的下限和上限。所以它们会落在相同的尺度上。
library(quantmod)
shinyServer(function(input, output) {
dataInput <- reactive({
data1 <- getSymbols(input$symb1, src = "yahoo", #Seperated the data into two seperate data sets and set auto.assign=FALSE
from = input$dates[1],
to = input$dates[2],
auto.assign = FALSE)
data2 <- getSymbols(input$symb2, src = "yahoo", #Seperated the data into two seperate data sets and set auto.assign=FALSE
from = input$dates[1],
to = input$dates[2],
auto.assign = FALSE)
return (list(data1,data2)) #Stored the data sets in a single list
})
output$plot <- renderPlot({
chartSeries(dataInput()[[1]], TA=paste0("addTA(",input$symb1,",on=1)"),theme = chartTheme("white"), #added the TA argument with the paste helper function
type = "line", log.scale = input$log)
chartSeries(dataInput()[[2]], TA=paste0("addTA(",input$symb2,",on=1)"),theme = chartTheme("white"),
type = "line", log.scale = input$log)
})
})
关于r - 使用 chartSeries 的 react 语句绘制多个符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31641704/
创建一个“海盗对话”,可以选择左手或右手。我希望它对“左”和“右”的不同拼写做出积极的回答(正如您将在代码中看到的那样),但是,当我为所有非“右”或“左”的输入添加最终的“else”代码时,它给了我一
With 语句 对一个对象执行一系列的语句。 With object statements End With 参数 object 必需的部分
While...Wend 语句 当指定的条件为 True 时,执行一系列的语句。 While condition  ; Version [stat
所以我正在处理的代码有一个小问题。 while True: r = input("Line: ") n = r.split() if r == " ":
我有一个对象数组: var contacts = [ { "firstName": "Akira", "lastName": "Laine", "number"
int main() { int f=fun(); ... } int fun() { return 1; return 2; } 在上面的程序中,当从main函数中调用一个
我的项目中有很多 if 语句、嵌套 if 语句和 if-else 语句,我正在考虑将它们更改为 switch 语句。其中一些将具有嵌套的 switch 语句。我知道就编译而言,switch 语句通常更
Rem 语句 包含程序中的解释性注释。 Rem comment 或 ' comment comment 参数是需要包含的注释文本。在 Rem 关键字和 comment 之间应有一个空格。
ReDim 语句 在过程级中声明动态数组变量并分配或重新分配存储空间。 ReDim [Preserve] varname(subscripts) [, varname(subscripts)]
Randomize 语句 初始化随机数生成器。 Randomize [number] number 参数可以是任何有效的数值表达式。 说明 Randomize 使用 number 参数初始
Public 语句 定义公有变量并分配存储空间。在 Class 块中定义私有变量。 Public varname[([subscripts])][, varname[([subscripts])
Sub 语句 声明 Sub 过程的名称、参数以及构成其主体的代码。 [Public [Default]| Private] Sub name [( arglist )]
Set 语句 将对象引用赋给一个variable或property,或者将对象引用与事件关联。 Set objectvar = {objectexpression | New classname
我有这个代码块,有时第一个 if 语句先运行,有时第二个 if 语句先运行。我不确定为什么会这样,因为我认为 javascript 是同步的。 for (let i = 0; i < dataObje
这是一个 javascript 代码,我想把它写成这样:如果此人回答是,则回复“那很酷”,如果此人回答否,则回复“我会让你开心”,如果此人回答的问题包含"is"或“否”,请说“仅键入”是或否,没有任何
这是我的任务,我尝试仅使用简短的 if 语句来完成此任务,我得到的唯一错误是使用“(0.5<=ratio<2 )”,除此之外,构造正确吗? Scanner scn = new Scanner(
有没有办法在 select 语句中使用 if 语句? 我不能在这个中使用 Case 语句。实际上我正在使用 iReport 并且我有一个参数。我想要做的是,如果用户没有输入某个参数,它将选择所有实例。
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: If vs. Switch Speed 我将以 C++ 为例,但我要问的问题不是针对特定语言的。我的意思是一
Property Set 语句 在 Class 块中,声明名称、参数和代码,这些构成了将引用设置到对象的 Property 过程的主体。 [Public | Private] Pro
Property Let 语句 在 Class 块中,声明名称、参数和代码等,它们构成了赋值(设置)的 Property 过程的主体。 [Public | Private] Prop
我是一名优秀的程序员,十分优秀!