我正在努力寻找要使用的正确 dplyr 代码grepl或等效的代码来替换整个数据帧中的值。
即:任何包含“马自达”的单元格都应该将其全部内容替换为新字符串“A car”
在网上搜索了很多之后,我最接近的是:
重点是将其应用于所有列。
library(dplyr)
mtcars$carnames <- rownames(mtcars) # dummy data to test on
Run Code Online (Sandbox Code Playgroud)
这一行可以使整个 sting 完全匹配:
mtcars %>% replace(., (.)=='Mazda RX4', "A car")
Run Code Online (Sandbox Code Playgroud)
但是由于某种原因,我的 grepl 尝试将整个列替换为“A car”。
mtcars %>% replace(., grepl('Mazda', (.)), "A car")
Run Code Online (Sandbox Code Playgroud) 我正在寻找在我的闪亮应用程序中实现3D交互式绘图,到目前为止我一直在使用情节.然而,情节有一个主要缺点,渲染时速度极慢.我已经完成了检查,尽管涉及大量数据集,但更新的outplot $ plot < - renderPlotly({.....})和plotlyOutput("plot")的整个创建时间不到0.5秒.多年来这是一个众所周知的问题,但似乎仍然是最新的.
因此,我正在寻找一个名为car的软件包,也因为它有很多选项,其中一些我特别想要在其他软件包中没有.有关汽车包装的信息如下:http://www.sthda.com/english/wiki/amazing-interactive-3d-scatter-plots-r-software-and-data-visualization问题是它是单独渲染的弹出窗口而不是闪亮的应用程序内部,我想把它放在里面,甚至更好,添加一个按钮,允许用户将其作为弹出窗口,但只有当被问及时.但是,我无法弄清楚如何将虫子塞进实际的闪亮页面.
这是我的最小示例,其中包含单个文本元素和图形代码(在我的示例中)不断出现在单独的窗口中而不是应用程序中.
install.packages(c("rgl", "car", "shiny"))
library("rgl")
library("car")
library(shiny)
cars$time <- cars$dist/cars$speed
ui <- fluidPage(
hr("how do we get the plot inside this app window rather than in a popup?"),
plotOutput("plot", width = 800, height = 600)
)
server <- (function(input, output) {
output$plot <- renderPlot({
scatter3d(x=cars$speed, y=cars$dist, z=cars$time, surface=FALSE, ellipsoid = TRUE)
})
})
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
还有这个包,scatterplot3d,但这不是交互式的http://www.sthda.com/english/wiki/scatterplot3d-3d-graphics-r-software-and-data-visualization
并且有一些RGL包但它们具有相同的问题(单独的窗口)并且不提供我正在寻找的选项.
我认为基本语法问题,但我坚持下去.我有一个应用程序,其中包含许多我尝试设置样式的元素,例如modalDialogs.如何使此代码仅针对modaldialog 1,而不适用于modaldialog 2?
tags$head(tags$style(".modal-body {padding: 10px}
.modal-content {-webkit-border-radius: 6px !important;-moz-border-radius: 6px !important;border-radius: 6px !important;}
.modal-dialog { width: 240px; display: inline-block; text-align: left; vertical-align: top;}
.modal-header {background-color: #339FFF; border-top-left-radius: 6px; border-top-right-radius: 6px}
.modal { text-align: right; padding-right:10px; padding-top: 24px;}
.close { font-size: 16px}"))
Run Code Online (Sandbox Code Playgroud)
完整的演示应用:
library(shiny)
ui <- fluidPage(
tags$head(tags$style(".modal-body {padding: 10px}
.modal-content {-webkit-border-radius: 6px !important;-moz-border-radius: 6px !important;border-radius: 6px !important;}
.modal-dialog { width: 240px; display: inline-block; text-align: left; vertical-align: top;}
.modal-header {background-color: #339FFF; border-top-left-radius: 6px; border-top-right-radius: 6px}
.modal { text-align: right; padding-right:10px; …Run Code Online (Sandbox Code Playgroud) 我的应用程序中有一个场景与下面的虚拟应用程序中的情况相匹配。我真正的应用程序所做的是以数据框中可用的每一列的形式显示,checkboxes供用户从中选择要运行的模型。我正在尝试构建的是on ,它显示用户将鼠标悬停在该列中的数据图。目前,我已经完成了所有工作,但仍然存在一个问题:dropdownmenudropdownButtonmodalDialogtriggeredhover
如果用户使用 关闭modal,histogram下拉dialog window按钮的 也会消失。如何只制作plot dialogto close,同时保持 1 全部打开checkboxes?
这是一个存在问题的虚拟应用程序:
library(shiny)
library(shinyjs)
shinyApp(
ui = fluidPage(
useShinyjs(),
dropdownButton(label = "CLICK",
h5("This is the dropdownbutton window" ),
checkboxInput("Checker", "Hover for modal dialog"),
icon = icon("tasks"),
inputId = "MYDDMbut",
circle = T,
status = "info",
tooltip = tooltipOptions(title = "Click to open window"), width = "400px")
),
server = function(input, output, session) { …Run Code Online (Sandbox Code Playgroud) 我试图通过在 plotly 的交互式图例中取消选择来找出用户从散点图中隐藏了哪些痕迹。
我已经阅读了这篇SO post,以及下面评论中链接的类似问题,这让我更接近解决方案
当前的解决方案只是部分地做我需要的。我正在寻找改进它的两件事是: - 如何查看哪个图的图例被点击(查看源“id”?) - 我现在可以看到图例条目被点击,但我需要能够看到是否单击“ON”(显示轨迹)或“OFF”
我正在寻找的输出看起来像这样:
input$trace_plot1: 然后是所有关闭和打开的跟踪的列表,或者每次单击时的单个跟踪 nr 但它表明该特定跟踪现在是否“打开”或“关闭”
我的目标是将视觉隐藏和显示链接到数据中我所有组的概览,用户现在可以在其中为他们提供新的名称、颜色,并选择使用带有 T/ 的按钮保留或删除组F 状态开关在它后面。我想将按钮的 T/F 状态链接到特定图的“显示”/“隐藏”轨迹(因为我的应用程序中有 5 个这些图的副本,显示了分析过程不同阶段的数据.
这是我的尝试,它不会以某种方式对传说做出反应,只是放大:
library(plotly)
library(shiny)
library(htmlwidgets)
js <- c(
"function(el, x){",
" el.on('plotly_legendclick', function(evtData) {",
" Shiny.setInputValue('trace', evtData.data[evtData.curveNumber].name);",
" });",
"}")
iris$group <- c(rep(1,50), rep(2, 50), rep(3,50))
ui <- fluidPage(
plotlyOutput("plot1"),
plotlyOutput("plot2"),
verbatimTextOutput("legendItem")
)
server <- function(input, output){
output$plot1 <- renderPlotly({
p <- plot_ly(source = 'plotly1', data = iris, x = ~Sepal.Length, y = ~Petal.Length, color = …Run Code Online (Sandbox Code Playgroud) 我试图找到一个如何创建绘图的示例,其中为一列中的每个因素创建一个子面板,y 轴是值列,x 例如日期或行名
例如,如果我们采用mtcars数据框,分组cyl为每个 cyl 值创建 1 个子面板,绘制mpg为 y 轴和rownamex 轴
变量数量 此外,在我预期的情况下,我不知道会有多少个独特的因素,因为这取决于在绘图阶段之前在闪亮的应用程序中创建数据的模型。
我看到了这个示例,但是它为每个变量列绘制了一个面板,而不是每个因子绘制了一个面板:
p <- economics %>%
tidyr::gather(variable, value, -date) %>%
transform(id = as.integer(factor(variable))) %>%
plot_ly(x = ~date, y = ~value, color = ~variable, colors = "Dark2",
yaxis = ~paste0("y", id)) %>%
add_lines() %>%
subplot(nrows = 5, shareX = TRUE)
Run Code Online (Sandbox Code Playgroud)
如果有人知道如何让我开始或有一个关于如何执行此操作的现有示例,我将非常感激
编辑 我尝试构建此代码,但它似乎绘制了每个面板中的所有值
mydf <- mtcars[ ,names(mtcars)[which(names(mtcars) %in% c('cyl', 'mpg', 'hp'))]]
plot_ly(data = mydf, x =~hp, y=~mpg, type = 'scatter')
myplotlysub …Run Code Online (Sandbox Code Playgroud)