小编Rya*_*son的帖子

如何判断Perl代码中的一组parens是作为分组parens还是组成一个列表?

在perl中,括号用于覆盖优先级(如在大多数编程语言中)以及用于创建列表.如何判断一对特定的parens是被视为分组构造还是单元素列表?

例如,我很确定这是一个标量而不是单元素列表:(1 + 1)
但是更复杂的表达式呢?有简单的说法吗?

perl grouping list parentheses

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

在Perl中访问字符串中的单个字符时,是否更快地子行或拆分为数组?

我正在编写一个Perl脚本,我需要在其中循环遍历字符串的每个字符.有很多字符串,每个字符串长100个字符(它们是短的DNA序列,以防你想知道).

那么,使用一次substr提取每个字符是否更快,或者split将字符串更快地转换为数组然后遍历数组?

在我等待答案时,我想我会读到如何在Perl中对事物进行基准测试.

string perl performance character

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

如何告诉Perl函数从特殊的ARGV句柄读取文件?

perldoc perlvar,我读到这个:

请注意,目前"ARGV"仅在"<>"运算符中具有神奇效果; 在其他地方,它只是一个普通的文件句柄,对应于"<>"打开的最后一个文件.特别是,将"*ARGV"作为参数传递给需要文件句柄的函数可能不会导致您的函数自动读取@ARGV中所有文件的内容.

那么,如何可以我通过*ARGV(或一些类似于它)作为一个参数设置为期望一个文件句柄的功能,并有功能读取所有的文件@ARGV

perl filehandle argv

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

有没有办法在R中读写内存文件?

我正在尝试使用R来分析大型DNA序列文件(fastq文件,每个文件几千兆字节),但这些文件的标准R接口(ShortRead)必须立即读取整个文件.这不适合内存,因此会导致错误.有什么方法可以一次读取几(千)行,将它们填入内存文件,然后使用ShortRead从内存文件中读取?

我正在寻找像Perl的IO :: Scalar这样的东西.

file-io memory-management r in-memory large-files

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

如何在perl脚本中使用perl模块的某个版本(或更高版本)?

我正在使用Term::ANSIColor我的Perl脚本对终端输出进行着色,并且我正在使用该colorstrip函数,该函数仅在Term::ANSIColor版本2.01中添加,根据更改日志.那么,有没有办法让我的脚本自动die使用适当的错误消息,如果它至少找不到该版本的Term::ANSIcolor

perl perl-module version

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

如何通过API重命名GitHub存储库?

查看http://develop.github.com/p/repo.html上的GitHub API参考,我看到各种好东西,但我没有看到通过API重命名存储库的任何方法.有没有办法这样做?

git github-api

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

我如何强制ggplot的geom_tile填充每个方面?

我正在使用ggplot的geom_tile做一个因子面对的2-D密度图.每个方面的比例从所有数据的最小值到所有数据的最大值,但每个方面中的geom_tile仅扩展到该方面中绘制的数据范围.

演示此问题的示例代码:

library(ggplot2)

data.unlimited <- data.frame(x=rnorm(500), y=rnorm(500))
data.limited <- subset(data.frame(x=rnorm(500), y=rnorm(500)), x<1 & y<1 & x>-1 & y>-1)

mydata <- rbind(data.frame(groupvar="unlimited", data.unlimited),
                data.frame(groupvar="limited", data.limited))

ggplot(mydata) +
  aes(x=x,y=y) +
  stat_density2d(geom="tile", aes(fill = ..density..), contour = FALSE) +
  facet_wrap(~ groupvar)
Run Code Online (Sandbox Code Playgroud)

面

运行代码,您将看到两个方面.一个方面显示"无限"随机正态分布的密度图.第二个方面显示一个随机法线截断,位于原点周围的2x2方格内."有限"刻面中的几何体将被限制在这个小盒子内,而不是填充刻面.

last_plot() +
  scale_x_continuous(limits=c(-5,5)) + 
  scale_y_continuous(limits=c(-5,5))
Run Code Online (Sandbox Code Playgroud)

指定的限制

最后三行绘制了具有指定x和y限制的相同数据,并且我们看到在这种情况下,两个facet都没有将tile部分扩展到边缘.

有没有办法强制每个方面的geom_tile延伸到facet的整个范围?

r ggplot2

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

如何防止R加载包?

我在R中使用多核包来并行化我的代码.但是,如果加载了tcltk软件包,使用多核软件包的分叉进程将导致R无限期挂起.所以我想阻止tcltk加载.如果任何包试图将其作为依赖项加载,我想要立即出错.这可能吗?

或者,我可以在加载包后卸载它吗?

r package

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

安全地评估R中的算术表达式?

编辑

好吧,因为似乎有很多混乱,我将稍微简化一下这个问题.您可以尝试回答下面的原始问题,或者您可以解决此版本而忽略该行下方的所有内容.

我的目标是采取任意表达并在极其受限制的环境中对其进行评估.此环境仅包含具有以下类型值的变量:

  • 数字向量
  • 带有一个或多个数字向量并返回数字向量的纯函数(即算术运算符)

此外,表达式必然能够使用任何文字,例如数字和字符串常量(但不是数字或字符串向量,因为那些需要c).我想评估此环境中的表达式,并确保表达式无法访问环境之外的任何内容,以便我可以确定评估表达式不会带来安全风险.那么,在下面的代码中,你能用一个字符串填充空白,这个字符串在评估时会做些调皮吗?"顽皮的东西"被定义为在屏幕上打印某些东西,访问变量的值secret,执行任何shell命令(最好是产生输出的命令),或任何其他看起来很顽皮的东西(证明你的选择).

a <- 1
b <- 2
x <- 5
y <- 1:10
z <- -1

## Give secret a random value so that you can't just compute it from
## the above variables
secret <- rnorm(5)

allowed.variables <- c(
    ## Numeric variables
    "a", "b", "x", "y", "z",
    ## Arithmetic operators
    "(", "+", "-", "/", "*", "^", "sqrt", "log", "log10", "log2", "exp", "log1p")

restricted.environment <- Map(get, allowed.variables)

## Example naughty expressions …
Run Code Online (Sandbox Code Playgroud)

evaluation r code-injection

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

如何在Emacs Lisp中以编程方式设置自定义变量?

在Emacs中,一些变量在通过Mx自定义设置时具有特殊行为,当您通过设置相同的变量时不会触发setq.是否有一种编程方式来设置这样的变量,以便触发特殊行为,就像用户通过自定义设置变量一样?

此外,是否有一个函数以编程方式将值保存到用户的自定义文件?我正在尝试实现一个功能,将默认元素重新添加到列表中,而不删除用户添加的元素.

emacs customization elisp

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