使用R中的ManualizeWidget按ID过滤绘图图表
第一次在这里问问题,所以如果我问的方式正确,请告诉我 我正在尝试使用R中的ManipleWidget按名称筛选绘图图表,但收到以下错误消息: 警告:错误:TIBLE中的所有列必须是1d或2d对象: *列使用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
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]