- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在一家图书馆工作,我们在 csv 中获得常规数据库输出,其中包含期刊文章信息(标题、作者、摘要等)。它有 67 列,每次列名都相同。每行都有不同期刊文章的引用信息。目标是在一个列中创建一个完整引用的电子表格(通过将不同的列粘贴在一起,如作者和出版日期)和在另一列中创建开放访问状态,删除无关的列。我写了一些 R 代码,自动删除不必要的列并将其余列粘贴在一起,当我是唯一一个清理人员时,它工作得很好。但是,我的主管希望办公室中的其他人能够执行这项工作,并要求我制作一个 R Shiny 应用程序来执行此操作。我以前从未创造过。虽然我已经设法为脚本的上传和下载部分编写了代码,但我在实际让清理部分工作时遇到了麻烦。这第一段代码是我已经在应用程序外部进行的清洁工作,它可以正常工作。
library(tidyverse)
#data is the name of the csv after I load it
datasubset= subset(data, select = c(Author.Full.Names,Article.Title,Source.Title,Volume,Issue,Article.Number,DOI,Publication.Date,Publication.Year,Open.Access.Designations))
datasubset$Full.Date <- paste(datasubset$Publication.Date, datasubset$Publication.Year)
datasubset$Citation <- paste("Author(s): ",datasubset$Author.Full.Names,". Title:",datasubset$Article.Title,". Volume:",datasubset$Volume,". Issue:",datasubset$Issue,". Article Number:",datasubset$Article.Number,". DOI:",datasubset$DOI,". Published:",datasubset$Full.Date)
citationdata= subset(datasubset, select=c(Citation,Open.Access.Designations))
这就是我目前对 Shiny 应用程序的了解。我尝试从几个不同的教程(包括此处的其他问题)以多种方式放置清理代码部分,但我不太明白。
library(tidyverse)
library(shiny)
ui <- fluidPage(
fluidPage(
titlePanel("Uploading Files"),
sidebarLayout(
sidebarPanel(
fileInput('data', 'Choose CSV File',
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv')),
tags$hr(),
checkboxInput('header', 'Header', TRUE),
radioButtons('sep', 'Separator',
c(Comma=',',
Semicolon=';',
Tab='\t'),
','),
radioButtons('quote', 'Quote',
c(None='',
'Double Quote'='"',
'Single Quote'="'"),
'"'),
downloadButton('downloadData', 'Download')
),
mainPanel(
tableOutput('contents')
)
)
)
)
server <- function(input, output) {
getData <- reactive({
inFile <- input$data
if (is.null(input$data))
return(NULL)
read.csv(inFile$datapath, header=input$header, sep=input$sep,
quote=input$quote)
})
output$contents <- renderTable(
getData()
)
output$downloadData <- downloadHandler(
filename = function() {
paste("data-", Sys.Date(), ".csv", sep="")
},
content = function(file) {
write.csv(getData(), file)
})
}
shinyApp(ui, server)
如果有人能够指出如何将两者合并在一起,我将不胜感激。理想情况下,有人可以把他们从数据库下载的 csv 文件上传到应用程序,应用程序会清理它,然后他们可以下载清理后的版本,它只有两列——引用和开放访问状态。另外,这是我在这里的第一篇文章,所以如果我遗漏了任何相关内容,请告诉我!谢谢!
最佳答案
我认为您在这方面非常接近。我在评论中问了一个问题,但我猜你想在数据显示在表格上之前清理数据。基本上您需要做的就是将“清理代码”弹出到 reactive
中。我将 read.csv 放入一个名为“data”的新变量中以适合您的清理功能,然后放置最终输出“citationdata”。希望这就是您要找的:
library(tidyverse)
library(shiny)
ui <- fluidPage(
fluidPage(
titlePanel("Uploading Files"),
sidebarLayout(
sidebarPanel(
fileInput('data', 'Choose CSV File',
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv')),
tags$hr(),
checkboxInput('header', 'Header', TRUE),
radioButtons('sep', 'Separator',
c(Comma=',',
Semicolon=';',
Tab='\t'),
','),
radioButtons('quote', 'Quote',
c(None='',
'Double Quote'='"',
'Single Quote'="'"),
'"'),
downloadButton('downloadData', 'Download')
),
mainPanel(
tableOutput('contents')
)
)
)
)
server <- function(input, output) {
getData <- reactive({
inFile <- input$data
if (is.null(input$data))
return(NULL)
data<-read.csv(inFile$datapath, header=input$header, sep=input$sep,
quote=input$quote)
# #data is the name of the csv after I load it
datasubset= subset(data, select = c(Author.Full.Names,Article.Title,Source.Title,Volume,Issue,Article.Number,DOI,Publication.Date,Publication.Year,Open.Access.Designations))
datasubset$Full.Date <- paste(datasubset$Publication.Date, datasubset$Publication.Year)
datasubset$Citation <- paste("Author(s): ",datasubset$Author.Full.Names,". Title:",datasubset$Article.Title,". Volume:",datasubset$Volume,". Issue:",datasubset$Issue,". Article Number:",datasubset$Article.Number,". DOI:",datasubset$DOI,". Published:",datasubset$Full.Date)
citationdata = subset(datasubset, select=c(Citation,Open.Access.Designations))
citationdata
})
output$contents <- renderTable(
getData()
)
output$downloadData <- downloadHandler(
filename = function() {
paste("data-", Sys.Date(), ".csv", sep="")
},
content = function(file) {
write.csv(getData(), file)
})
}
shinyApp(ui, server)
关于r - 如何在 R Shiny 应用程序中嵌入清洁代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70084995/
我对 unix 套接字(TCP 本地)有点困惑 我有一个服务器和一个客户端: client 通过套接字向服务器发送一些信息(使用send)多次 server 打印此数据(server 调用 recv
我一直在尝试从数据集中清理特定列。我多次使用 .apply() 函数以便抛出任何可能出现在列的字符串值中的符号。 对于每个符号,函数如下:.apply(lambda x: x.replace("",
我正在按照 http://nvie.com/posts/a-successful-git-branching-model/ 的建议进行独立项目 我使用以下代码发布了我的代码的版本 1: git che
我一直在尝试从数据集中清理特定列。我多次使用 .apply() 函数以便抛出任何可能出现在列的字符串值中的符号。 对于每个符号,函数如下:.apply(lambda x: x.replace("",
我正在按照 http://nvie.com/posts/a-successful-git-branching-model/ 的建议进行独立项目 我使用以下代码发布了我的代码的版本 1: git che
我想让我的 Controller 变薄,并将业务逻辑与其他操作分开。例如我有一个 Action : public function indexAction() { $languages = $
如何清理 react native 项目? 有什么方法可以像我们可以清理 xcode 项目一样清理 React Native 项目? 任何帮助将不胜感激! 最佳答案 一个 react-native 项
我创建了一组 jRadioButton, 每个按钮都有一个操作监听器,用于在单独的窗口中创建 JTable。 我希望当我按下另一个按钮时,框架将被清理,然后执行另一个JTable, ButtonGro
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this q
我有几项任务要在不共享数据的 AWS EMR 上执行,我想使用同一个 EMR 一个接一个地执行它们。有没有办法将正在运行的 EMR 清理回其初始状态(删除配置单元表,清理所有 HDFS 文件等)避免数
更新 bundle 后,您将拥有一些可能已过时的 gem——因为已安装该 gem 的更新版本。 bundle 可执行文件下没有这样的命令,即 bundle clean。如何摆脱这些过时的 gem ?
当我从命令提示符运行“mvn clean tomcat:run”(未指定任何 tomcat 版本)命令以运行我的 Web 应用程序时,它会下载 tomcat 6.0.29 版本依赖项,如下所示: 组织
我可以在我的 iOS 应用程序中使用干净的 c++ 版本的 openGL 吗?我想写一些基本的包装器,然后将我的 C++ 代码与这个包装器和 App 连接起来。或者我必须只使用 openGLES?使用
我是 Apache/mod_rewrite 的新手。我需要这样做 以下网址: http://www.example.com/applications/seo-friendly-text-for-app
有人能告诉我什么是清理不良 HTML 以便 BeautifulSoup 可以处理它的更好方法 - 应该使用 BeautifulSoup 的按摩方法还是使用正则表达式清理它? 最佳答案 我想我应该改写我
假设我有一个 Controller ,其中包含一个呈现 View 的操作。 View 需要数据来呈现。我知道以下方法来准备并将其发送到 View : 使用实例变量 class CitiesContro
我的 ASP.NET MVC 项目已推送到 Azure 网站,其中包含无效的额外 DLL。这导致项目无法正常运行。如果创建了一个新网站,它会完美运行。在本地清理项目并重新部署并不能解决问题。有没有办法
我尝试了很多变体,但无法实现此目的。一个示例(子 pom.xml): org.apache.maven.plugins maven-clean-plugin
我有一些关于 Vaadin 架构的简单问题。 Vaadin 文档声称它是一个 Single-Page Application (SPA)但是这怎么可能呢,因为页面是在服务器端渲染的,到处都是一些 Ja
我的 Dockerfile 看起来像 FROM python:3.7-slim # System setup ENV USER app ENV APP_DIR /home/app RUN userad
我是一名优秀的程序员,十分优秀!