我想将 afluidRow中的一些文本居中mainPanel。因此,我尝试:
library(shiny)
ui <- fluidPage(
mainPanel(
fluidRow(
align = "center",
"How to center this?"
)
)
)
server <- function(input, output) {}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
然而,文本明显偏离中心(太左)。如果我省略它就mainPanel(...)可以了。
为什么是identical(c(1:3), c(1, 2, 3))假的?换句话说,为什么前者是整数而后者是双?
我有一个创建矩阵的函数,我想调用此函数一千次,这样最终我就有1000个矩阵的列表。这是一个例子:
set.seed(1)
gen_mat <- function(x) matrix(c(1, 1, 1, x + rnorm(1)), nrow = 2)
Run Code Online (Sandbox Code Playgroud)
现在,我尝试了replicate(10, gen_mat(1)),但这将返回一个数组而不是一个列表。怎么做?
我希望我的 Shiny 应用程序的用户使用行名和列名填充 2x2 表的值。当然,我可以用 4 个输入框来完成,但我认为将所有内容整齐地放置会很棘手。尽管如此,我还是更喜欢一种表格布局,例如DT软件包提供的布局。因此,我的问题是:是否有可能datatable由用户填写(或类似的东西)?
如何使用shinyjs同时hide/多个元素?show在下面的示例中,我的目标是仅用两行代码而不是四行代码来隐藏/显示两个表。我为什么要这样做?实际上,我正在处理多个表和多个事件,因此一次显示/隐藏它们将使代码更加清晰。
library(shiny)
library(shinyjs)
ui <- fluidPage(
useShinyjs(),
actionButton("hide","Hide!"),
actionButton("show","Show!"),
tableOutput("table1"),
tableOutput("table2"))
server <- function(input, output, session) {
output$table1 <- renderTable({head(iris)})
output$table2 <- renderTable({head(iris)})
observeEvent(input$hide, {hide("table1")})
observeEvent(input$show, {show("table1")})
observeEvent(input$hide, {hide("table2")})
observeEvent(input$show, {show("table2")})}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud) Shiny 默认字体是什么?去哪里查?
library(shiny)
ui <- fluidPage("What font is used here?")
server <- function(input, output, session) {}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud) 什么是进口的import spark.implicits._?“隐含”是指某个包吗?如果是这样,为什么我在https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.package的 Scala Api 文档中找不到它?
如何在Shiny中隐藏条件面板?请参阅以下示例:
library(shiny)
ui <- fluidPage(
actionButton("eval","Evaluate"),
numericInput("num_input", "If number is changed, cp must hide", value = 0),
conditionalPanel(
condition = "input.eval",
"text"))
server <- function(input, output, session) {
observeEvent(input$num_input, {
input$eval <- 0
})}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
我要实现的目标是:一旦用户单击评估按钮,num_input便会出现条件面板,但是一旦更改了数字,该面板就会消失。我的想法是使评估按钮为空,但这不起作用(该应用程序以灰色背景打开,似乎冻结了)。
我也这样尝试过shinyjs:
library(shiny)
library(shinyjs)
ui <- fluidPage(
useShinyjs(),
actionButton("eval","Evaluate"),
numericInput("num_input", "If number is changed, cp must hide", value = 0),
conditionalPanel(
id = "cond_panel",
condition = "input.eval",
"text"))
server <- function(input, output, session) {
observeEvent(input$num_input, {
reset("cond_panel")})}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
但这也不起作用:应用程序会定期打开,并且一旦单击评估按钮,便会显示条件面板,但是一旦更改了数字,则什么也不会发生。
我想按 id 列对数据表进行分组,然后计算每个 id 出现的次数。这可以按如下方式完成:
dt <- data.table(id = c(1, 1, 2))
dt_by_id <- dt[, .N, by = id]
dt_by_id
id N
1: 1 2
2: 2 1
Run Code Online (Sandbox Code Playgroud)
这很好,但我希望 N 列有一个不同的名称(例如count)。帮助里说:
.N 是一个整数,长度为 1,包含组中的行数。当事先不知道列名称时,这可能很有用,并且通常为了方便起见。当按 i 分组时,.N 是 x 中匹配的行数,对于 i 的每一行,无论 nomatch 是 NA 还是 0。它在结果中重命名为 N(无点)(否则称为“的列” .N" 可能与 .N 变量冲突,请参阅常见问题解答 4.6 了解更多详细信息和示例),除非明确命名;....
创建数据表时如何“显式命名”N列dt_by_id?(我知道之后如何重命名它。)我尝试过
dt_by_id <- dt[, count = .N, by = id]
Run Code Online (Sandbox Code Playgroud)
但这导致
Error in `[.data.table`(dt, , count = .N, by = id) :
unused …Run Code Online (Sandbox Code Playgroud) 假设我有一个简单的矩阵A.
A = matrix(c(1,2,3,4,5,6,7,8,9),nrow=3,ncol=3)
Run Code Online (Sandbox Code Playgroud)
现在,我的目标是用A制作热图,这样每个数字都会被一个颜色字段取代.怎么做?我试过了
heatmap(A)
Run Code Online (Sandbox Code Playgroud)
但它产生了三条彩色条纹,而不是9个不同的区域.