我可以在 R 中绘制相对频率直方图,使用lattice包:
a <- runif(100)
library(lattice)
histogram(a)
Run Code Online (Sandbox Code Playgroud)
我想在ggplot. 我试过
dt <- data.frame(a)
ggplot(dt, aes(x = a)) +
geom_bar(aes(y = ..prop..))+
scale_y_continuous(labels=percent)
Run Code Online (Sandbox Code Playgroud)
但它不是那样工作的。我应该在代码中更改什么?在图表之前计算相对频率对我来说不是一个选择。
我正在使用两个文件创建闪亮的应用程序:ui.R和server.R. 他们每个人看起来像:
# ui.R
dashboardPage(
dashboardHeader(title = "Content"),
dashboardSidebar(
sidebarMenu(id="tabs", sidebarMenuOutput("menu"))
),
dashboardBody(
............................
Run Code Online (Sandbox Code Playgroud)
和
# server.R
library(shinydashboard)
library(shiny)
load(file = "table word freq.RData")
function(input, output,session) {
output$menu <- renderMenu({
sidebarMenu(
menuItem("Tags", tabName="m1", icon = icon("database"),
menuSubItem("Tags1", tabName = "m1"),
menuSubItem("Tags2", tabName = "m2"),
menuSubItem("Tags3", tabName = "m3")
),
................
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在使用shinydashboard包,但是当我按下时Run App出现错误:
Warning: Error in ..stacktraceon..: could not find function "dashboardPage"
Stack trace (innermost first):
1: shiny::runApp
Error : could not find …Run Code Online (Sandbox Code Playgroud) 我必须打乱字符串的元素。我写了一段代码:
sequ <- "GCTTCG"
set.seed(2017)
i <- sample(1:nchar(sequ))
separate.seq.letters <- unlist(strsplit(sequ, ""))
paste(separate.seq.letters[i], collapse = "")
[1] "GTCGTC"
Run Code Online (Sandbox Code Playgroud)
此代码将元素打乱一次。主要问题是有没有更好(更有效)的方法来做到这一点?对于非常长的序列和大量的 shuffle strsplit,paste命令需要一些额外的时间。
我有 RShiny 代码,我想用它禁用/启用带有复选框的数字输入。但是,它仅适用于禁用。
library(shiny)
runApp(shinyApp(
ui = fluidPage(
shinyjs::useShinyjs(),
numericInput("test", "Test", 5),
checkboxInput("submit", label="Choose")
),
server = function(input, output, session) {
observeEvent(input$submit, {
shinyjs::disable("test")
})
}
))
Run Code Online (Sandbox Code Playgroud)
我怎么能解决这个问题?