小编Bac*_*lin的帖子

在MySQL中将值设置为NULL

NULL如果在我提交的表单中没有任何内容放入文本框,我想要设置一个值.我怎样才能做到这一点?我试过插入,'NULL'但这只是将字添加NULL到字段中.

我不确定我应该为此提供什么代码,我只是编写一个UPDATE查询.

mysql sql

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

在绘图中嵌入微型图

有没有人知道将图形嵌入其他图形以产生类似下面的模型的一般方法?

我知道在格子中你可以print(..., more=TRUE, positions=...)按照这个问题中的解释来做到这一点,我猜ggplot也有它的解决方案(但我对ggplot不是很好).问题是我想要将使用标准图形包的生存包中的常规绘图嵌入到格子图中.

嵌入式绘图的模型

提前致谢!

plot r lattice

21
推荐指数
2
解决办法
8262
查看次数

将多个复杂图形组合在一个图中作为面板

@backlin介绍

通过使用layout或,可以将多个简单绘图组合成单个图形中的面板par(mfrow=...).但是,更复杂的图表往往会在内部设置自己的面板布局,从而无法将其用作面板.有没有办法创建嵌套布局并将复杂的图形封装到单个面板中?

我有一种感觉,grid包可以实现这一点,例如通过在单独的视口中绘制面板,但无法弄清楚如何.这是一个演示问题的玩具示例:

my.plot <- function(){
    a <- matrix(rnorm(100), 10, 10)
    plot.new()
    par(mfrow=c(2,2))
    plot(1:10, runif(10))
    plot(hclust(dist(a)))
    barplot(apply(a, 2, mean))
    image(a)
}
layout(matrix(1:4, 2, 2))
for(i in 1:4) my.plot()
# How to avoid reseting the outer layout when calling `my.plot`?
Run Code Online (Sandbox Code Playgroud)

原创问题来自@alittleboy

我使用包中的heatmap.2函数gplots来生成热图.以下是单个热图的示例代码:

library(gplots)
row.scaled.expr <- matrix(sample(1:10000),nrow=1000,ncol=10)
heatmap.2(row.scaled.expr, dendrogram ='row',
          Colv=FALSE, col=greenred(800), 
          key=FALSE, keysize=1.0, symkey=FALSE, density.info='none',
          trace='none', colsep=1:10,
          sepcolor='white', sepwidth=0.05,
          scale="none",cexRow=0.2,cexCol=2,
          labCol = colnames(row.scaled.expr),                 
          hclustfun=function(c){hclust(c, method='mcquitty')},
          lmat=rbind( c(0, 3), c(2,1), c(0,4) ), …
Run Code Online (Sandbox Code Playgroud)

layout plot r heatmap

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

Roxygen和建议包

我正在开发一个包roxygen2,其中包括许多lattice基于可视化的包.这些都不错,但没有必要使用该程序包,因此lattice在上市Suggests:的第DESCRIPTION文件,而不是Depends:部分.

但是,我还没有想出如何加载lattice接获要求用户在两者传递的方式roxygenize()R CMD check.以下两种方式都使得lattice看起来像未声明的依赖关系,并将返回以下错误.

##' @import lattice
{}

##' Visualization
##'
##' @param x Data.
##' @param y More data.
##' @export
vizz <- function(x, y){
    xyplot(y ~ x)
}
Run Code Online (Sandbox Code Playgroud)

##' Visualization
##'
##' @param x Data.
##' @param y More data.
##' @export
vizz <- function(x, y){
    library(lattice)
    xyplot(y ~ x)
}
Run Code Online (Sandbox Code Playgroud)

两者都给出了同样的错误

$ R CMD check dummy.roxygen …
Run Code Online (Sandbox Code Playgroud)

r roxygen2

14
推荐指数
1
解决办法
1729
查看次数

如何很好地重新调整晶格数字?

在准备打印数据时,我经常需要使它们比屏幕上显示的要小得多.将数字降低到几厘米的范围并不罕见.使用标准图形包par(cex=...)可以缩小整个图,以适应这么小的区域,看起来仍然是成比例的.是否与格子包中的相同?

基本上,如何在右侧面板的大小中绘制下图,但保留左侧面板的比例?

在此输入图像描述 在此输入图像描述

这个问题时不时地发生在我身上,它通常让我疯狂地进行实验trellis.par.get,trellis.par.set然后放弃并使用标准图形重绘整个图形(这非常繁琐).在发现时,trellis.par.set(simpleTheme(cex=...))我以为自己已经打了金币,但它似乎没有做任何事情.

澄清

我想重新缩放图中的所有内容,包括字体大小,边距和刻度尺寸.很多.我知道我可以简单地调整pdf(height=..., width=...)以获得我喜欢的比例,然后在排版中重新缩放它,例如InDesign或文字处理器,但我觉得如果每个pdf都有嵌入文件中的预期尺寸,我会得到更好的控制.

r lattice

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

检测单击键

有几次我想检测R中的单击键但是找不到任何其他东西readline()或类似的东西.

一个例子是进行交互式绘图或数据浏览,并能够使用箭头键更改参数值并自动更新绘图.当然我可以使用readline()并让用户输入"u"然后而不是向上箭头,但我发现它不是很优雅.

是否可以通过system()某种方式读取stdin 的命令来完成?

编辑:我现在已经被告知其他地方stdin也会在做任何事情之前等待一个输入中风,并且立即捕捉击键是系统特定的并且很难完成.如果有人知道如何在ubuntu 10.10或任何其他Linux/unix系统上执行此操作,我很高兴知道.

r

12
推荐指数
1
解决办法
714
查看次数

并行执行foreach循环或按顺序执行

我经常最终得到几个嵌套foreach循环,有时候在编写一般函数时(例如对于一个包),没有明显的并行化级别.有没有办法完成下面的模型描述?

foreach(i = 1:I) %if(I < J) `do` else `dopar`% {
    foreach(j = 1:J) %if(I >= J) `do` else `dopar`% {
        # Do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

此外,有没有办法检测并行后端是否已注册,以便我可以避免收到不必要的警告消息?在CRAN提交之前检查包并且不打扰在单核计算机上运行R的用户时,这将非常有用.

foreach(i=1:I) %if(is.parallel.backend.registered()) `dopar` else `do`% {
    # Do stuff
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的时间.

编辑:非常感谢您对核心和工作人员的所有反馈,并且你是对的,处理上述示例的最佳方法是重新考虑整个设置.我更喜欢下面这个triu想法,但它基本上是相同的.它当然也可以tapply像Joris建议的那样平行完成.

ij <- expand.grid(i=1:I, j=1:J)
foreach(i=ij$I, j=ij$J) %dopar% {
    myFuction(i, j)
}
Run Code Online (Sandbox Code Playgroud)

然而,在我试图简化引起这个线程的情况时,我遗漏了一些关键的细节.想象一下,我有两个功能analyse,并batch.analyse和最好的水平,在并行依据的值可能是不同的n.replicatesn.time.points.

analyse <- function(x, y, n.replicates=1000){
    foreach(r = 1:n.replicates) %do% {
        # Do stuff with …
Run Code Online (Sandbox Code Playgroud)

parallel-processing foreach r

12
推荐指数
2
解决办法
8710
查看次数

防止R在unix/linux上使用虚拟内存?

精简版

有没有办法阻止R在unix机器上使用任何虚拟内存?每当它发生时,都是因为我搞砸了然后我想中止计算.

更长的版本

我正在与其他几个人共享的强大计算机上处​​理大数据集.有时我会设置需要比可用内存更多RAM的命令,这会导致R开始交换并最终冻结整个机器.通常我可以通过ulimit在我的设置中解决这个问题~/.bashrc

ulimit -m 33554432 -v 33554432  # 32 GB RAM of the total 64 GB
Run Code Online (Sandbox Code Playgroud)

这导致R抛出错误并在尝试分配比可用内存更多的内存时中止.但是,如果我在并行化(通常使用snow包)时做出这种类型的错误,ulimit则无效并且机器无论如何都会崩溃.我想这是因为snow将工作程序作为不以bash运行的单独进程启动.如果我试着设置ulimit我的~/.Rprofile我只是得到一个错误:

> system("ulimit -m 33554432 -v 33554432")
ulimit: 1: too many arguments
Run Code Online (Sandbox Code Playgroud)

有人可以帮我找到实现这个目标的方法吗?

侧轨道

为什么我不能设置ulimit0虚拟内存bash

$ ulimit -m 33554432 -v 0
Run Code Online (Sandbox Code Playgroud)

如果我这样做很快就会关闭.

unix linux r

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

抖动点时避免重叠

在阅读科学论文时,我经常会遇到点不相交的情节.我怀疑它们中的许多是用一个名为GraphPad Prism的程序绘制的,但肯定必须有一种方法在R中做同样的事情.虽然它不完美(如下面的红点)我认为它看起来比随机抖动好多了.

没有重叠的抖动点

如果有人知道如何做到这一点,最好使用一些基本功能,我会很高兴知道.

plot r

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

可以在roxygen2代码块中使用换行符吗?

我想知道在记录函数时是否可以在roxygen2中的代码块中插入换行符?

如果我有内容\code{},roxygen2默认将所有换行折叠为单个空格.我尝试插入\cr内部来强制执行换行符,然后我得到了所需的行为,但是当我"R CMD CHECK"时我得到一个警告.有没有办法做到这一点?

例:

#' \code{
#'   multiple
#'   lines
#' }
Run Code Online (Sandbox Code Playgroud)

documentation r r-package

9
推荐指数
1
解决办法
1037
查看次数