- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 Shiny 的应用程序,以允许我的一些非数据人员上传一些文件,一些转换、连接和摘要来自这些文件,并显示一些数字。
此处将使用一个文件和输出作为示例。我正在尝试在列上使用 dplyr 执行过滤条件,但在上传文件后出现此错误。
Listening on http://xxx.x.x.x:xxxx
Warning: Error in UseMethod: no applicable method for 'filter_' applied to an object of class "character"
[No stack trace available]
请注意,我(目前)还没有尝试执行 react 性条件,只是试图过滤掉不需要产生所需输出的变量(在本例中为 2 因子饼图)。是过滤错误还是上传文件的方式?
用于过滤和 ggplot 的管道在外面闪闪发亮。
library(shiny)
library(tidyverse)
library(scales)
# Define UI for data upload app ----
ui <- fluidPage(
# App title ----
titlePanel("Uploading Files"),
# Sidebar layout with input and output definitions ----
sidebarLayout(
# Sidebar panel for inputs ----
sidebarPanel(
# Input: Select a file ----
fileInput("file1", "Choose CSV File",
multiple = TRUE,
accept = c("text/csv",
"text/comma-separated-values,text/plain",
".csv"))
),
# Main panel for displaying outputs ----
mainPanel(
# Output: Data file ----
plotOutput(outputId = "plots")
)
)
)
和我的服务器
# Define server logic to read selected file ----
server <- function(input, output) {
observe({
data <- input$file1
if(is.null(data))
return(NULL)
df <- data$datapath %>%
filter(DQ.File == "In Compliance" | DQ.File == "Out of Compliance") %>%
group_by(DQ.File) %>%
summarise (n = n()) %>%
mutate(DQ.File = recode(DQ.File,
"In Compliance" = "Drivers In Compliance",
"Out of Compliance" = "Drivers Out Of Compliance"),
freq = round((n / sum(n)) * 100, 2),
label = paste(DQ.File, "-", paste(freq, "%", sep = ""))) %>%
select(-c(n, DQ.File))
output$plots = renderPlot({
df %>% ggplot(aes(x = 1, y = freq, fill = label)) +
coord_polar(theta = 'y') +
geom_bar(stat = "identity", color = 'black') +
scale_fill_manual(values = c("darkgreen", "red")) +
theme_minimal()+
theme(
axis.title.x = element_blank(),
axis.text = element_blank(),
axis.title.y = element_blank(),
panel.border = element_blank(),
panel.grid = element_blank(),
axis.ticks = element_blank(),
plot.title = element_text(size=14, face="bold"),
legend.title = element_blank(),
axis.text.x = element_blank(),
legend.background = element_rect(linetype = "solid"))
})
})
}
shinyApp(ui, server)
有没有办法在上传步骤中保留这样的因素,还是我的问题在其他地方?
最佳答案
不推荐在 observe()
内渲染输出,在这种情况下甚至不需要。这是一个更好的方法 -
server <- function(input, output, session) {
df <- reactive({
req(input$file1)
read.csv(input$file1$datapath, header = T) %>%
filter(DQ.File == "In Compliance" | DQ.File == "Out of Compliance") %>%
group_by(DQ.File) %>%
summarise (n = n()) %>%
mutate(DQ.File = recode(DQ.File,
"In Compliance" = "Drivers In Compliance",
"Out of Compliance" = "Drivers Out Of Compliance"),
freq = round((n / sum(n)) * 100, 2),
label = paste(DQ.File, "-", paste(freq, "%", sep = ""))) %>%
select(-c(n, DQ.File))
})
output$plots <- renderPlot({
df() %>%
ggplot(aes(x = 1, y = freq, fill = label)) +
coord_polar(theta = 'y') +
geom_bar(stat = "identity", color = 'black') +
scale_fill_manual(values = c("darkgreen", "red")) +
theme_minimal()+
theme(
axis.title.x = element_blank(),
axis.text = element_blank(),
axis.title.y = element_blank(),
panel.border = element_blank(),
panel.grid = element_blank(),
axis.ticks = element_blank(),
plot.title = element_text(size=14, face="bold"),
legend.title = element_blank(),
axis.text.x = element_blank(),
legend.background = element_rect(linetype = "solid"))
})
}
关于r - 文件上传后 Shiny 的 dplyr 过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57823757/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!