使用R中的ManualizeWidget按ID过滤绘图图表

使用R中的ManualizeWidget按ID过滤绘图图表,r,shiny,widget,rstudio,r-plotly,R,Shiny,Widget,Rstudio,R Plotly,第一次在这里问问题,所以如果我问的方式正确,请告诉我 我正在尝试使用R中的ManipleWidget按名称筛选绘图图表,但收到以下错误消息: 警告:错误:TIBLE中的所有列必须是1d或2d对象: *列color为空: 数据结构: Name Date Value lastName, firstName1 2020-03-19 96.5 lastName, firstName1 2020-03-17 96.0 lastNam

第一次在这里问问题,所以如果我问的方式正确,请告诉我

我正在尝试使用R中的ManipleWidget按名称筛选绘图图表,但收到以下错误消息:

警告:错误:TIBLE中的所有列必须是1d或2d对象: *列
color
为空:

数据结构:

Name                 Date            Value
lastName, firstName1 2020-03-19      96.5
lastName, firstName1 2020-03-17      96.0
lastName, firstName2 2020-03-19      87.2
lastName, firstName2 2020-03-17      85.3
lastName, firstName3 2020-03-19      69.1
lastName, firstName3 2020-03-17      70.2
我的代码如下:

plotVar <- function(xvar, yvar, name) {

  plot_ly(x = ~data[[xvar]], y = ~data[[yvar]], color = ~data[[name]], type = "bar") %>% 
    layout(xaxis = list(title = xvar), yaxis = list(title = yvar))
}

plotVar("Date", "Value", "Name")

varNames <- names(data)[2:3]

manipulateWidget(
  plotVar(xvar, yvar, name),
  xvar = mwSelect(varNames, value = "Date"),
  yvar = mwSelect(varNames, value = "Value"),
  name = mwSelect(choices = data$Name)
)
plotVar%
布局(xaxis=list(title=xvar),yaxis=list(title=yvar))
}
plotVar(“日期”、“值”、“名称”)

varNames为了使用Name过滤
数据
,我们需要将其作为参数传递,同时
plot\u ly
需要
color
作为提供的
数据
中的列名。这里是函数的修改版本

plotVar <- function(data_var, xvar, yvar, name, name_choice) {
  if(name_choice=="all"){
    data_var = data_var
    plot_ly(x = ~data_var[[xvar]], y = ~data_var[[yvar]], color = ~data_var[[name]], type = "bar") %>% 
      layout(xaxis = list(title = xvar), yaxis = list(title = yvar))

  } else {
    data_var = data_var[data_var$Name==name_choice,]
    plot_ly(x = ~data_var[[xvar]], y = ~data_var[[yvar]], type = "bar") %>% 
      layout(xaxis = list(title = xvar), yaxis = list(title = yvar))
  }
}

plotVar(data_var = data, "Date", "Value", "Name", name_choice = "all")

varNames <- names(data)

manipulateWidget(
  plotVar(data, xvar, yvar, name, name_choice),
  xvar = mwSelect(varNames, value = "Date"),
  yvar = mwSelect(varNames, value = "Value"),
  name = mwSelect(varNames, value = "Name"), 
  name_choice = mwSelect(choices = c("all", unique(data$Name)))
)
plotVar%
布局(xaxis=list(title=xvar),yaxis=list(title=yvar))
}否则{
data\u var=data\u var[data\u var$Name==Name\u choice,]
plot_-ly(x=~data_-var[[xvar]],y=~data_-var[[yvar]],type=“bar”)%>%
布局(xaxis=list(title=xvar),yaxis=list(title=yvar))
}
}
plotVar(data\u var=data,“Date”,“Value”,“Name”,Name\u choice=“all”)

谢谢你的帮助!当我运行最后一节时(从manipleWidget…),我现在得到以下错误:在.subset2中出错:尝试在Get1中选择少于一个元素来索引任何想法?这可能会有所帮助。请注意,
varNames
等于
名称(数据)
而不是
名称(数据)[2:3]