小编dyn*_*amo的帖子

从lme4 mer模型对象中提取随机效应方差

我有一个具有固定和随机效果的mer对象.如何提取随机效应的方差估计?这是我的问题的简化版本.

study <- lmer(Reaction ~ Days + (1|Subject), data = sleepstudy)
study
Run Code Online (Sandbox Code Playgroud)

这样可以提供长输出 - 在这种情况下不会太长.无论如何,我如何明确选择

Random effects:
Groups   Name        Variance Std.Dev.
Subject  (Intercept) 1378.18  37.124  
Residual              960.46  30.991  
Run Code Online (Sandbox Code Playgroud)

部分输出?我想要自己的价值观.

我长期看看

str(study)
Run Code Online (Sandbox Code Playgroud)

那里什么都没有!还检查了lme4包中的任何提取器功能都无济于事.请帮忙!

random r effects lme4

41
推荐指数
3
解决办法
4万
查看次数

从字符串加载R包

我想创建一个函数,包括加载我在函数中创建的包.一个简短的例子(不运行!):

loadMe <- function(name){
    genLib(xxx, libName = name) #make a new library with name "name"
    library(name)               #load the new library...
}
Run Code Online (Sandbox Code Playgroud)

这不起作用!一些可重现的代码说明了我的主要问题:

library(ggplot)         #this works fine
load.this <- "ggplot"
library(load.this)      #I want this to load ggplot!
Run Code Online (Sandbox Code Playgroud)

我知道问题在于,library()并将require()一个尚不存在的对象名称作为参数.我已经试过包装我的字符串,parse(),deparse(),substitute(),expression(),quote(),等等等等,这些都返回了同样的问题:

library(load.this)
# Error in library(loadss) : there is no package called 'loadss'
library(deparse(load.this))
# Error in library(deparse(loadss)) : 'package' must be of length 1
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

string r character

31
推荐指数
1
解决办法
6721
查看次数

knitr的子图或子标题?

是否有可能使用knitr生成子图(带有相关的子标题)?这是一个最小的工作示例:

\documentclass{article}

\begin{document}

<<echo = FALSE, fig.cap = c("Some numbers.", "Some more numbers."), out.width = "0.5\\textwidth", fig.align = "center">>=

plot(1:10)
plot(30:100)

@

\end{document}
Run Code Online (Sandbox Code Playgroud)

这导致标记为图1和图2的两个图,其中标题(分别)被定义.但是我希望它们被标记为"图1a"和"图1b",就像使用子标题LaTeX包一样.

我知道有一个knitr选项"fig.env",但这并没有解决它(至少没有使用,例如,"fig.env ='subfigure'").这里有关于Sweave的类似帖子,但解决方案是一个不优雅的黑客:http://texblog.org/2011/12/01/sweave-subfig-controlling-figure-size-and-placement/

latex r subfigure knitr

22
推荐指数
3
解决办法
6849
查看次数

在R闪亮页面中显示/隐藏侧边栏后,Plot不会调整100%宽度

我有一个在R Shiny的双面板页面的主面板中设置为100%宽度(默认)的绘图.侧边栏可通过切换操作按钮隐藏.

当侧边栏可见(默认)时,绘图将填充主面板的宽度.当侧边栏被隐藏时,我希望绘图扩展以填充现有空间的100%,即整个浏览器窗口.但这不会发生!它保持相同的大小.

library(shiny)
library(shinyBS)

UI <- fluidPage(
    bsButton("showpanel", "Show/hide sidebar", type = "toggle", value = TRUE),
    sidebarLayout(
        conditionalPanel(condition = "input.showpanel == true",
                         sidebarPanel("This is my sidebar.")
                         ),
        mainPanel(plotOutput("plot", width = "100%"))
        )
    )

SERVER <- function(input, output) {
        output$plot <- renderPlot({
        plot(1:10, main = "The width of this plot adjusts\nto window resizes but not to\nshow/hide sidepanel!")
    })
}

runApp(shinyApp(UI,SERVER))
Run Code Online (Sandbox Code Playgroud)

到目前为止尝试:

  • 如上所述,在UI文件中定义绘图对象.
  • 从服务器文件中定义绘图对象,作为renderUI对象.
  • tags$head(tags$style("#myplot{height:100vh !important;}"))根据此问题在页面中设置CSS标记,将闪亮的图形缩放到窗口高度.

可能的解决方法:

  • 使绘图的宽度动态化,具体取决于切换按钮的状态.然后,当侧边栏被隐藏时,我可以使绘图例如140%宽度.这并没有很好地概括,并且失去了使用适应性的观点fluidPage.

(fluidPage根据浏览器窗口大小更改布局.例如,如果您使浏览器窗口大小与手机大小相同,则会将侧边栏放在主面板上方.)

css r shiny

16
推荐指数
2
解决办法
1444
查看次数

R一年中的第53周?

我有周数据,表格yyyy-wwww的周数是两位数.数据跨越2007-012010-30.周计数会议是ISO 8601,正如您在维基百科的"周数"文章中所看到,偶尔会在一年内达到53周.例如,2009年该系统有53周,请参阅此ISO 8601日历中的周数.(见其他年份;根据维基百科的文章,第53周相当罕见.)

基本上我想阅读周日期,将其转换为Date对象并将其保存到一个单独的列中data.frame.作为测试,我将Date对象重新转换为yyyy-ww格式format([Date-object], format = "%Y-%W",并在此处抛出错误2009-53.那个星期没有被解释为日期R.这是非常奇怪的,因为没有第53周(在ISO 8601标准中)的2007-53其他年份被转换为罚款,例如,而其他年份也没有第53周(在ISO 8601标准中)也失败,例如2008-53

以下最小示例演示了该问题.

最小的例子:

dates <- c("2009-50", "2009-51", "2009-52", "2009-53", "2010-01", "2010-02")
as.Date(x = paste(dates, 1), format = "%Y-%W %w")
# [1] "2009-12-14" "2009-12-21" "2009-12-28" NA           "2010-01-04"
# [6] "2010-01-11"

other.dates <- c("2007-53", "2008-53", "2009-53", "2010-53")
as.Date(x = paste(other.dates, 1), …
Run Code Online (Sandbox Code Playgroud)

r date dayofweek

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

很漂亮〜来自R chunk with knitr?

我在代码块中有一个线性模型,我希望在LaTeX中很好地显示.模型调用采用标准形式,使用波浪号〜在LaTeX中可以进行排版.

\documentclass{article}
\begin{document}
<<>>=
lm(Sepal.Width ~ Sepal.Length, data = iris)
@
\end{document}
Run Code Online (Sandbox Code Playgroud)

代码编织knitr::knit(mwe.Rnw),然后通过PDFLaTeX运行.

在LaTeX中制作漂亮的波浪线非常烦人,并且让它们变得简单易行.对由此产生的.tex文件的检查knit表明,代码被放入三个环境中,其中\begin{alltt} ... \end{alltt}有一个是有趣的环境.但该软件包alltt不提供任何特殊排版特殊字符的快速修复.

latex r typesetting pdflatex knitr

7
推荐指数
1
解决办法
887
查看次数

nvd3 scatterPlot与R中的rCharts:点的大小?

我一直在玩rCharts和nvd3一段时间了.现在我处于需要气泡图的情况,或者至少是一个散点图,其中点的大小取决于数据中的变量.从这个例子看,似乎有可能.rCharts中散点图的示例是:

library(rCharts)
p1 <- nPlot(mpg ~ wt, group = 'cyl', data = mtcars, type = 'scatterChart')
p1$xAxis(axisLabel = 'Weight')
p1
Run Code Online (Sandbox Code Playgroud)

所以我试过设置尺寸,例如gears.但它没有改变任何东西.

p2 <- nPlot(mpg ~ wt, group = 'cyl', size = 'gear', data = mtcars, type = 'scatterChart')
p2$xAxis(axisLabel = 'Weight')
p2
Run Code Online (Sandbox Code Playgroud)

可能吗?

r nvd3.js rcharts

7
推荐指数
1
解决办法
3110
查看次数

VLC播放器中的命令行YouTube - 质量控制?

我正在尝试制作一个小脚本,其中包括使用VLC从命令行播放YouTube视频.我在搜索路径中使用Windows 7和VLC.

打字

vlc http://www.youtube.com/watch?v=v0faacLn8K4
Run Code Online (Sandbox Code Playgroud)

播放视频,但始终保持最高质量.在互联网浏览器中,附加术语'&fmt = 18'会强制使用低分辨率模式.但是,在命令行中使用它,

vlc http://www.youtube.com/watch?v=v0faacLn8K4&fmt=18
Run Code Online (Sandbox Code Playgroud)

给出错误:

´fmt´ is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

我试过引用各种报价的网址,但无济于事.整个链接将传递给VLC,包括引号.

这是什么解决方案?是否有用于选择流质量的VLC开关?该VLC命令行帮助可以有答案,但了解所有开关的意思是有点出乎我的.

音乐信誉:Breakbot旁边的音乐

youtube command-line vlc

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

基本R指南:逐字?在R的knitr

我正在为我的公司制作介绍性的R指南.我正在做R帮助功能的一个小演示(速记)

?mean
Run Code Online (Sandbox Code Playgroud)

这是一个knitr块:

<<eval=FALSE>>=
?mean
@
Run Code Online (Sandbox Code Playgroud)

输出:

`?`(mean)
Run Code Online (Sandbox Code Playgroud)

我更喜欢它输入它,因为我输入它,即?mean没有?(mean)(带反叛).有谁知道这个的解决方法?

谢谢!

如果这是一个重复的问题或者有一个非常简单的解决方案,请道歉 - 这不是一个容易搜索的主题!

latex r pdflatex knitr

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

蜂巢中的ARRAY_CONTAINS个多重值

有没有一种方便的方法可以在配置单元中使用ARRAY_CONTAINS函数来搜索数组列中的多个条目而不是一个?因此,而不是:

WHERE ARRAY_CONTAINS(array, val1) OR ARRAY_CONTAINS(array, val2)
Run Code Online (Sandbox Code Playgroud)

我想写:

WHERE ARRAY_CONTAINS(array, val1, val2)
Run Code Online (Sandbox Code Playgroud)

完整的问题是,在运行脚本时,我需要从命令行参数中动态读取val1val2动态读取它们,而我通常不知道要使用多少个值。所以,你能想到的vals是一个逗号分隔的列表(或阵列)包含值val1val2...,我想写

WHERE ARRAY_CONTAINS(array, vals)
Run Code Online (Sandbox Code Playgroud)

提前致谢!

sql hive

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

情节的新方法 - 如何出口?

我正在制作一个包,我想为剧情定义一种新方法.我正在使用roxygen源代码文档.这个问题看起来非常类似于: 如何使用Roxygen从不同的包中正确记录泛型的S3方法?Roxygen2 - 如何正确记录S3方法, 但我仍然无法让它工作.

导致我麻烦的相关部分是:

#' Generic plot method
#'
#' @param x \dots
#' @param ... \dots
#' @export
plot <- function(x, ...) UseMethod("plot")

#' Default plot method
#'
#' @param x \dots
#' @param ... \dots
#' @importFrom graphics plot
#' @method plot default
#' @S3method plot default
plot.default <- function(x, ...) graphics::plot(x, ...)

#' Plotting function for ABI object
#'
#' Description.
#' 
#' @param x ABI object as generated by newABI.
#' @param …
Run Code Online (Sandbox Code Playgroud)

generics r package roxygen

5
推荐指数
2
解决办法
2121
查看次数

在 R 中嵌套并行函数(

我熟悉foreach,%dopar%之类的。我也是熟悉parallel的选项cv.glmnet。但是你如何设置嵌套的并行性如下?

library(glmnet)
library(foreach)
library(parallel)
library(doSNOW)
Npar <- 1000
Nobs <- 200
Xdat <- matrix(rnorm(Nobs * Npar), ncol = Npar)
Xclass <- rep(1:2, each = Nobs/2)
Ydat <- rnorm(Nobs)
Run Code Online (Sandbox Code Playgroud)

并行交叉验证:

cl <- makeCluster(8, type = "SOCK")
registerDoSNOW(cl)
system.time(mods <- foreach(x = 1:2, .packages = "glmnet") %dopar% {
    idx <- Xclass == x
    cv.glmnet(Xdat[idx,], Ydat[idx], nfolds = 4, parallel = TRUE)
})
stopCluster(cl)
Run Code Online (Sandbox Code Playgroud)

非并行交叉验证:

cl <- makeCluster(8, type = "SOCK")
registerDoSNOW(cl)
system.time(mods <- foreach(x …
Run Code Online (Sandbox Code Playgroud)

parallel-processing foreach nested r glmnet

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

R中的VarCorr过载,lme4和nlme都有版本

我有一个由lme从llme生成的lme模型对象.我也装了lme4.现在我想使用VarCorr()提取方差分量.但是,两个包都具有该名称的功能.默认情况下,R使用lme4版本,该版本与lme对象不兼容.我怎么告诉它使用nlme版本?或者从搜索路径中删除lme4版本?谢谢.

r

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