小编pic*_*ick的帖子

闪亮应用中的RMarkdown

问题

有没有办法在闪亮的应用程序中插入(并评估)RMarkdown脚本.(注意,我不是在寻找在此处解释的RMarkdown中的闪亮应用程序,也不是在寻找闪亮的Markdown脚本(请参阅Shiny Gallery Markdown))

我正在构建一个包含文本,方程,代码块,图和交互元素的应用程序.为方便起见,我使用Markdown文件作为文本和方程式,并希望有时在两者之间(即在RMarkdown中写入大部分内容).由于闪亮的应用程序更复杂(我使用它shinydashboard包括许多独特的功能),我宁愿选择不使用第一个链接中描述的方法.

最小的工作示例是:

R-文件:

library(shiny)

ui <- shinyUI(
  fluidPage(
    includeMarkdown("RMarkdownFile.rmd")
  )
)
server <- function(input, output) {}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

和"RMarkdownFile.rmd"在同一个文件夹中:

This is a text

$$ E(x) = 0 $$ 

```{r, eval = T}
plot(rnorm(100))
```
Run Code Online (Sandbox Code Playgroud)

结果:

闪亮的应用程序

目标

如果我编织rmd-file,我想要的是输出: RMarkdown HTML页面

具体来说,我想得到代码块的评估(绘制一些东西......),我想得到渲染的数学方程式.

有任何想法吗?

编辑解决方案

感谢@Bunk的输入,我选择使用该命令将所有rmd文件渲染到md文件,knit然后将md文件包含在闪亮的应用程序中(我使用markdown而不是html,因为后者产生了方程式的一些问题).最后,将includeMarkdown其包裹起来withMathJax以确保正确显示方程式.

最终代码如下所示:

library(shiny)
library(knitr)

rmdfiles <- c("RMarkdownFile.rmd")
sapply(rmdfiles, knit, quiet = T)

ui <- …
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown shiny

26
推荐指数
2
解决办法
1万
查看次数

将数据拖放到闪亮的应用程序中

如何将数据拖放到闪亮的应用程序中?我可以拖放到一个区域并用javascript读取它,但我不知道如何闪亮注册它所以我可以在服务器上处理它.这是一个示例设置 - 它有点长b/c我不认为有内置的javascript函数来处理拖放操作.

当运行并且拖入数据集"dat.csv"时,它当前应该如下所示.目标是将已拖放到变量中的数据注册到input可以在R中处理的数据中. 在此输入图像描述

ui.R

library(shiny)

ui <- shinyUI(
  fluidPage(
    tags$head(tags$link(rel="stylesheet", href="css/styles.css", type="text/css"),
      tags$script(src="getdata.js")),
    h3(id="data-title", "Drop Datasets"),
    div(class="col-xs-12", id="drop-area", ondragover="dragOver(event)", 
      ondrop="dropData(event)"),
    tableOutput('table'),  # doesn't do anything now

    ## debug
    div(class="col-xs-12",
      tags$hr(style="border:1px solid grey;width:150%"),
      tags$button(id="showData", "Show", class="btn btn-info", 
        onclick="printData('dat.csv')")),
    div(id="data-output")  # print the data
  )
)
Run Code Online (Sandbox Code Playgroud)

server.R

## Make a sample dataset
# write.csv(data.frame(a=1:10, b=letters[1:10]), "dat.csv", row.names=FALSE)
server <- function(input, output, session) {
  output$table <- renderTable(input$data)  # this variable doesn't exist
}
Run Code Online (Sandbox Code Playgroud)

WWW/getdata.js

var datasets = {};
var dragOver …
Run Code Online (Sandbox Code Playgroud)

javascript drag-and-drop r shiny

24
推荐指数
2
解决办法
3666
查看次数

内部的功能

问题:为什么我不能sapply在里面打电话aes()

下图的目标:创建显示死亡/生活比例的直方图,以便每个组/类型组合的比例总和为1(示例受前一篇文章启发).

我知道你可以通过在外面总结来制作这个数字,ggplot但问题实际上是为什么函数不能在其中工作aes.

## Data
set.seed(999)
dat <- data.frame(group=factor(rep(1:2, 25)),
                  type=factor(sample(1:2, 50, rep=T)),
                  died=factor(sample(0:1, 50, rep=T)))

## Setup the figure
p <- ggplot(dat, aes(x=died, group=interaction(group, type), fill=group, alpha=type)) +
  theme_bw() +
  scale_alpha_discrete(range=c(0.5, 1)) +
  ylab("Proportion")

## Proportions, all groups/types together sum to 1 (not wanted)
p + geom_histogram(aes(y=..count../sum(..count..)), position=position_dodge())
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

## Look at groups
stuff <- ggplot_build(p)
stuff$data[[1]]

## The long way works: proportions by group/type
p + geom_histogram(
    aes(y=c(..count..[..group..==1] / …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

19
推荐指数
2
解决办法
1322
查看次数

因素是否比数字更有效地存储在data.table中?

我虽然在某处读过(不记得在哪里)因为这些因素实际上并不比data.table中的字符向量更有效.这是真的?我在讨论是否继续使用因子在data.table中存储各种向量.近似测试object.size似乎另有说明.

chars <- data.table(a = sample(letters, 1e5, TRUE))           # chars (not really)
string <- data.table(a = sample(state.name, 1e5, TRUE))       # strings
fact <- data.table(a = factor(sample(letters, 1e5, TRUE)))    # factor
int <- data.table(a = sample(1:26, 1e5, TRUE))                # int

mbs <- function(...) {
    ns <- sapply(match.call(expand.dots=TRUE)[-1L], deparse)
    vals <- mget(ns, .GlobalEnv)
    cat('Sizes:\n',
        paste('\t', ns, ':', round(sapply(vals, object.size)/1024/1024, 3), 'MB\n'))
}

## Get approximate sizes?
mbs(chars, string, fact, int)
# Sizes:
#    chars : 0.765 MB
#    string : …
Run Code Online (Sandbox Code Playgroud)

memory r data.table

19
推荐指数
1
解决办法
1357
查看次数

在data.frame中的列中解压缩和合并列表

我有以下内容data.frame:

id     name   altNames
1001   Joan   character(0)      
1002   Jane   c("Janie", "Janet", "Jan")
1003   John   Jon
1004   Bill   Will
1005   Tom    character(0)      
Run Code Online (Sandbox Code Playgroud)

altNames可以为空(即字符(0)),只有一个名称或名称列表.我想要的是一个data.frame(或一个列表),其中每个条目name和/或altNames只出现一次与对应的id一样,如下所示:

id     name
1001   Joan
1002   Jane
1002   Janie
1002   Janet
1002   Jan
1003   John
1003   Jon
1004   Bill
1004   Will
1005   Tom
Run Code Online (Sandbox Code Playgroud)

这样做最有效的方法是什么?dplyr利用甚至更好.谢谢

编辑:这是数据:

df <- data_frame(
  id = c("1001", "1002","1003", "1004", "1005"), 
  name = c("Joan", "Jane", "John", "Bill", "Tom"), 
  altNames = list(character(0), c("Janie", …
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr data.table

14
推荐指数
3
解决办法
1351
查看次数

为什么Emacs项目Cc p未定义?

我是Emacs的新手.我安装了Projectile.

当我这样做时C-c p,它说:

C-c p is undefined
Run Code Online (Sandbox Code Playgroud)

想知道出了什么问题?

以下是我的~/.emacs档案.

(require 'package)

(add-to-list 'package-archives
                      '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)

(defvar required-packages
  '(
    projectile
    ) "a list of packages to ensure are installed at launch.")

(require 'cl)

                    ; method to check if all packages are installed
(defun packages-installed-p ()
  (loop for p in required-packages
    when (not (package-installed-p p)) do (return nil)
    finally (return t)))

                    ; if not all packages are installed, check one by one and install the …
Run Code Online (Sandbox Code Playgroud)

emacs projectile emacs-projectile

14
推荐指数
2
解决办法
1502
查看次数

使用data.table提取行中的最后一个非缺失值

我有一个因子列的data.table,我想拉出每行中最后一个非缺失值的标签.这是一种典型的max.col情况,但我不想在我尝试使用data.table优化此代码时不必要地强制执行.实际数据也有其他类型的列.

这是一个例子,

## Some sample data
set.seed(0)
dat <- sapply(split(letters[1:25], rep.int(1:5, 5)), sample, size=8, replace=TRUE)
dat[upper.tri(dat)] <- NA
dat[4:5, 4:5] <- NA                              # the real data isnt nice and upper.triangular
dat <- data.frame(dat, stringsAsFactors = TRUE)  # factor columns

## So, it looks like this
setDT(dat)[]
#    X1 X2 X3 X4 X5
# 1:  u NA NA NA NA
# 2:  f  q NA NA NA
# 3:  f  b  w NA NA
# 4:  k  g  h …
Run Code Online (Sandbox Code Playgroud)

r data.table

14
推荐指数
2
解决办法
1924
查看次数

按因子生成ggplot中的多个图

我有一个数据集,我想根据其中一列生成多个图.也就是说,我希望能够使用ggplot为每个因素制作一个单独的图.

这是一些快速的样本数据:

Variety = as.factor(c("a","b","a","b","a","b","a","b","a","b")
Var1 = runif(10)
Var2 = runif(10)
mydata = as.data.frame(cbind(Variety,Var1,Var2))
Run Code Online (Sandbox Code Playgroud)

我想在Var2上生成Var1的两个单独的图,一个用于Variety A,第二个用于Variety B,最好是在单个命令中,但是如果有一种方法可以在不分割表的情况下进行,那也没关系.

r ggplot2 categorical-data

13
推荐指数
1
解决办法
2万
查看次数

R:ess emacs,跳转到功能实现/源

Ctrl- c Ctrl- v让我在光标的位置查看文档的功能.但是我查看函数源代码的关键序列(比如F2键入Rstudio)?我还不想使用这个debug功能.

emacs r ess

11
推荐指数
1
解决办法
392
查看次数

如何打印没有索引的长列表?

如何打印没有索引的长列表?

我得到的输出:

> print(1:100)
 [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18
 [19]  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36
 [37]  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54
 [55]  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72 …
Run Code Online (Sandbox Code Playgroud)

r

10
推荐指数
2
解决办法
579
查看次数