小编mpi*_*tas的帖子

如何将数据从反应性Shiny表达式传递到ggvis图?

我正在熟悉ggvis,我正试图在闪亮中使用它.我无法理解ggvis如何从反应性Shiny表达式中获取数据.这是ggvis GitHub存储库的基本应用程序:

ui.R:

shinyUI(pageWithSidebar(
  div(),
  sidebarPanel(
    sliderInput("n", "Number of points", min = 1, max = nrow(mtcars),
                value = 10, step = 1),
    uiOutput("plot_ui")
  ),
  mainPanel(
    ggvisOutput("plot"),
    tableOutput("mtc_table")
  )
))
Run Code Online (Sandbox Code Playgroud)

server.R:

library(ggvis)

shinyServer(function(input, output, session) {
  # A reactive subset of mtcars
  mtc <- reactive({ mtcars[1:input$n, ] })

  # A simple visualisation. In shiny apps, need to register observers
  # and tell shiny where to put the controls
  mtc %>%
    ggvis(~wt, ~mpg) %>%
    layer_points() %>%
    bind_shiny("plot", "plot_ui")

  output$mtc_table <- renderTable({
    mtc()[, …
Run Code Online (Sandbox Code Playgroud)

r shiny ggvis

10
推荐指数
1
解决办法
3748
查看次数

如何从另一个包导入R函数,以便它可供用户使用?

我正在写一个R包,我想forecast从包预测中导入泛型函数.我的包提供了方法forecast.myobj.我有 forecastImports:包中的DESCRIPTION文件和我的函数定义如下:

##' @export
forecast.myobj <- function(x) {

}
Run Code Online (Sandbox Code Playgroud)

我正在使用devtools 包(版本1.5)来构建包.生成的NAMESPACE具有以下内容

S3method(forecast, myobj)
importFrom(forecast, forecast)
Run Code Online (Sandbox Code Playgroud)

但是,当我在干净的R会话中加载我的包时,函数forecast不可用.但有趣的是,我可以看到的帮助页面forecast,并forecast.myobj和我可以通过访问这些功能forecast::forecastmypackage:::forecast.myobj.是否有可能forecast在不依赖包装的情况下向用户提供forecast?我检查了文档,并在这里回顾了一堆类似的问题,但我没有找到明确的否定或肯定的答案.

packages r devtools

9
推荐指数
2
解决办法
1195
查看次数

是否可以在R中启动多个EC2实例?

这更像是一个初学者的问题.说我有以下代码:

library("multicore")
library("iterators")
library("foreach")
library("doMC")

registerDoMC(16)

foreach(i in 1:M) %dopar% {
   ##do stuff
}
Run Code Online (Sandbox Code Playgroud)

然后,此代码将在16个核心上运行(如果可用).现在,如果我理解正确,使用Amazon EC2,在一个实例上,我依赖于实例只有几个核心.因此,如果我想在16个内核上运行模拟,我需要使用多个实例,这意味着我理解启动新的R进程.但是我需要在R之外编写额外的代码来收集结果.

所以我的问题是,是否有一个R包,它允许从R内启动EC2实例,自动分配这些实例之间的负载,并在初始R启动时收集结果?

r amazon-ec2

8
推荐指数
1
解决办法
645
查看次数

来自给定双变量离散分布的随机样本

假设我有一个双变量离散分布,即概率值P(X = i,Y = j)表,i = 1,... n和j = 1,... m.如何从这样的分布中生成随机样本(X_k,Y_k),k = 1,... N?也许有一个准备好的R函数,如:

sample(100,prob=biprob)
Run Code Online (Sandbox Code Playgroud)

biprob是2维矩阵?

一种直观的采样方法如下.假设我们有一个data.frame

dt=data.frame(X=x,Y=y,P=pij)
Run Code Online (Sandbox Code Playgroud)

x和y来自哪里

expand.grid(x=1:n,y=1:m)
Run Code Online (Sandbox Code Playgroud)

和pij是P(X = i,Y = j).

然后我们得到大小为N的样本(Xs,Ys),方法如下:

set.seed(1000) 
Xs <- sample(dt$X,size=N,prob=dt$P)
set.seed(1000)
Ys <- sample(dt$Y,size=N,prob=dt$P)
Run Code Online (Sandbox Code Playgroud)

我使用set.seed()来模拟"双变量".直观地说,我应该得到类似于我需要的东西.我不确定这是否正确.因此问题:)

另一种方法是使用吉布斯采样,边际分布很容易计算.

我试过谷歌搜索,但没有真正相关的东西出现.

statistics r

7
推荐指数
2
解决办法
4608
查看次数

如何在R中选择公式中的一部分公式?

假设我有以下公式:

fr <- formula(y~myfun(x)+z)
Run Code Online (Sandbox Code Playgroud)

给定对象fr在R中有一个函数返回myfun(x)?我(下面的代码)写了我自己的功能,基本上做什么,我需要的,但也许有这样做的一些标准的方式吗?

我的功能代码:

selectmds <- function(expr,funcn) {
    if(length(expr)>2) {
        a <- expr[[2]]
        b <- expr[[3]]
        if(length(a)>1) {
            if(as.name(a[[1]])==funcn) {
                if(length(grep(funcn,all.names(b)))>0) {
                    return(list(a,selectmds(b,funcn)))
                }
                else return(list(a))
            }
        }
        if(length(b)>1) {
            if(as.name(b[[1]])==funcn) {
                if(length(grep(funcn,all.names(a)))>0) {
                    return(list(b,selectmds(a,funcn)))
                }
                else return(list(b))
            }
        }
        for(i in 2:length(expr)) {
            if(length(grep(funcn,all.names(expr[[i]])))>0)return(selectmds(expr[[i]],funcn))
        }
    }
    return(NULL)
}
Run Code Online (Sandbox Code Playgroud)

以下是几个例子:

> selectmds(formula(y~myfun(x)+z),"myfun")
[[1]]
myfun(x)


> unlist(selectmds(formula(y~myfun(x)+z+myfun(zz)),"myfun"))
[[1]]
myfun(zz)

[[2]]
myfun(x)
Run Code Online (Sandbox Code Playgroud)

parsing r formula

6
推荐指数
1
解决办法
1630
查看次数

如何控制整数类型列的data.frame中的粘贴行为?

下面是示例代码,它产生了有趣的输出:

> gg<-data.frame(x=c("a","b"),y=as.integer(c(1000,100000)))
> gg
  x      y
1 a   1000
2 b 100000
> apply(gg,1,paste,collapse="")
[1] "a  1000" "b100000"
> apply(gg[1,],1,paste,collapse="")
      1 
"a1000" 
Run Code Online (Sandbox Code Playgroud)

在第一次apply运行中,R以某种方式知道如何填充额外的空格.它是如何做到的,是否有可能控制这种行为?

r

5
推荐指数
1
解决办法
257
查看次数

为 dplyr do 操作的列表输出分配名称

dplyrdo包中的函数通常生成列表。有没有办法根据输入为该列表分配名称?具体来说,我传递结果,并希望列表的名称能够指示列表元素对应的组。dogroup_by

这是我想要实现的玩具示例:

> it = data.frame(ind=c("a","a","b","b","c"),var1=c(1,2,3,4,5), var1=c(2,3,4,2,2))
> group_by(it,ind)%.%summarise(min(var1))
Source: local data frame [3 x 2]

  ind min(var1)
1   c         5
2   b         3
3   a         1
Run Code Online (Sandbox Code Playgroud)

现在用do

> do(group_by(it,ind),function(x)min(x[,"var1"]))
[[1]]
[1] 5

[[2]]
[1] 3

[[3]]
[1] 1
Run Code Online (Sandbox Code Playgroud)

理想情况下,名称应该是c("c","b","a").

这可能吗?为什么dplyr会颠倒组的排序?请注意,在我的例子中,操作的结果do是一个lm对象。

编辑:评论要求提供现实的例子,这就是我的想法。我根据数据(虚拟代码)拟合模型:

res <- do(group_by(data,Index),lm,formula=y~x)
Run Code Online (Sandbox Code Playgroud)

现在我想做各种各样的事情,比如

sapply(res,coef)
Run Code Online (Sandbox Code Playgroud)

所以我想将结果与原始数据集相关联,在本例中与Index系数对应的内容相关联。

编辑2:可以通过以下函数实现所需的行为dlply

dlply(it,~ind,function(d)min(d[,"var1"]))

$a
[1] 1

$b
[1] 3

$c
[1] 5

attr(,"split_type")
[1] …
Run Code Online (Sandbox Code Playgroud)

r dplyr

5
推荐指数
1
解决办法
2796
查看次数

使用运算符j处理zsh数组

下面的代码取自这里:

function +vi-git-st() {
    local ahead behind remote
    local -a gitstatus

    # Are we on a remote-tracking branch?
    remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} \
        --symbolic-full-name 2>/dev/null)/refs\/remotes\/}

    if [[ -n ${remote} ]] ; then
        # for git prior to 1.7
        # ahead=$(git rev-list origin/${hook_com[branch]}..HEAD | wc -l)
        ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
        (( $ahead )) && gitstatus+=( "${c3}+${ahead}${c2}" )

        # for git prior to 1.7
        # behind=$(git rev-list HEAD..origin/${hook_com[branch]} | wc -l)
        behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc …
Run Code Online (Sandbox Code Playgroud)

shell zsh

4
推荐指数
1
解决办法
3931
查看次数

标签 统计

r ×7

amazon-ec2 ×1

devtools ×1

dplyr ×1

formula ×1

ggvis ×1

packages ×1

parsing ×1

shell ×1

shiny ×1

statistics ×1

zsh ×1