我有一个具有固定和随机效果的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包中的任何提取器功能都无济于事.请帮忙!
我想创建一个函数,包括加载我在函数中创建的包.一个简短的例子(不运行!):
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)
有没有办法做到这一点?
是否有可能使用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/
我有一个在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)
到目前为止尝试:
tags$head(tags$style("#myplot{height:100vh !important;}"))根据此问题在页面中设置CSS标记,将闪亮的图形缩放到窗口高度.可能的解决方法:
fluidPage.(fluidPage根据浏览器窗口大小更改布局.例如,如果您使浏览器窗口大小与手机大小相同,则会将侧边栏放在主面板上方.)
我有周数据,表格yyyy-ww中ww的周数是两位数.数据跨越2007-01到2010-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) 我在代码块中有一个线性模型,我希望在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不提供任何特殊排版特殊字符的快速修复.
我一直在玩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)
可能吗?
我正在尝试制作一个小脚本,其中包括使用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旁边的音乐
我正在为我的公司制作介绍性的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)(带反叛).有谁知道这个的解决方法?
谢谢!
如果这是一个重复的问题或者有一个非常简单的解决方案,请道歉 - 这不是一个容易搜索的主题!
有没有一种方便的方法可以在配置单元中使用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)
完整的问题是,在运行脚本时,我需要从命令行参数中动态读取val1并val2动态读取它们,而我通常不知道要使用多少个值。所以,你能想到的vals是一个逗号分隔的列表(或阵列)包含值val1,val2,...,我想写
WHERE ARRAY_CONTAINS(array, vals)
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我正在制作一个包,我想为剧情定义一种新方法.我正在使用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) 我熟悉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) 我有一个由lme从llme生成的lme模型对象.我也装了lme4.现在我想使用VarCorr()提取方差分量.但是,两个包都具有该名称的功能.默认情况下,R使用lme4版本,该版本与lme对象不兼容.我怎么告诉它使用nlme版本?或者从搜索路径中删除lme4版本?谢谢.