小编pca*_*upo的帖子

找到包含R函数定义的源文件

我来自蟒蛇背景,我正试图赶上R,所以请耐心等待

我有一个R文件 - util.R包含以下行:

util.add <- function(a,b) a + b
util.sub <- function(a,b) { a - b }
Run Code Online (Sandbox Code Playgroud)

我的来源如下:

source('path/util.R')

我现在有两个函数对象,想要编写一个函数,如下所示:

getFilePath(util.add)

这会给我这个结果

[1] "path/util.R"

r metaprogramming

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

确定Perl哈希的大小

我正在浏览GitHub上一个流行的存储库中的一些Perl代码,并运行此方法来计算哈希的大小:

while ( my ($a, undef ) = each %h ) { $num++; }
Run Code Online (Sandbox Code Playgroud)

我想为什么会在编写所有代码时遇到麻烦,因为它可以更简单地写成

$num = scalar keys %h;
Run Code Online (Sandbox Code Playgroud)

所以,我将这两种方法与Benchmark进行了比较.

my %h = (1 .. 1000);
    cmpthese(-10, {
        keys      => sub {
                             my $num  = 0;
                             $num = scalar keys %h;
                         },
        whileloop => sub {
                             my $num = 0;
                             while ( my ($a, undef ) = each %h ) {
                                 $num++;
                             }
                         },
});
Run Code Online (Sandbox Code Playgroud)
 RESULTS
                Rate whileloop      keys
 whileloop    5090/s        --     -100%
 keys      7234884/s   142047%        -- …

perl

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

在我的 PATH 中查找具有特定字符串的可执行文件

有没有办法快速知道 my 中的可执行文件是否$PATH包含特定字符串?例如,我想快速列出包含SRA.

我问的原因是我有几个包含角色的剧本SRA。问题是我总是忘记文件的起始字符(如果我记得,我会使用制表符补全来找到它)。

bash shell

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

Perl无法在具有32 GB RAM的Snow leopard Mac服务器上分配超过1.1 GB的空间

我有一台32GB内存的Mac服务器(雪豹).当我尝试在Perl(v 5.10.0)中分配超过1.1GB的RAM时,出现内存不足错误.这是我使用的脚本:

#!/usr/bin/env perl

# My snow leopard MAC server runs out of memory at >1.1 billion bytes.  How
# can this be when I have 32 GB of memory installed?  Allocating up to 4
# billion bytes works on a Dell Win7 12GB RAM machine.

# perl -v
# This is perl, v5.10.0 built for darwin-thread-multi-2level
# (with 2 registered patches, see perl -V for more detail)

use strict;
use warnings;

my $s;
print "Trying 1.1 GB...";
$s = …
Run Code Online (Sandbox Code Playgroud)

perl out-of-memory

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

R中的排序列联表

我有一个数据框 (df)

structure(list(key = 1:10, x = structure(c(1L, 1L, 1L, 2L, 3L, 
4L, 5L, 5L, 5L, 5L), .Label = c("x1", "x2", "x3", "x4", "x5"), class = "factor"), 
    y = structure(c(2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L), .Label = c("no", 
    "yes"), class = "factor")), .Names = c("key", "x", "y"), class = "data.frame", row.names = c(NA, -10L))
Run Code Online (Sandbox Code Playgroud)

当我创建一个列联表时,table(df$x, df$y)我得到了这个:

     no yes
  x1  1   2
  x2  0   1
  x3  1   0
  x4  1   0
  x5  1   3
Run Code Online (Sandbox Code Playgroud)

但我想在 …

sorting r

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

当列1与不同向量中的值匹配时,从第3列返回值

我有一个a带有多个ID代码的向量:

a <- c(167.1, 89.7, 284.1, 108.1, 50.6, 276.5, 283.2, 357.3, 119.2, 92.2, 314.4, 400.2, 154.5, 104.5, 198.2)
> a
[1] 167.1  89.7 284.1 108.1  50.6 276.5 283.2 357.3 119.2  92.2 314.4 400.2 154.5 104.5 198.2
Run Code Online (Sandbox Code Playgroud)

我还有y三列数据框:一个是ID代码,下一个是物种名称,第三个是生物变量(请注意,在我的完整数据集中,有许多行具有相同的Drop_ID值):

> y[4:14,]
Drop_ID           Common.Name distance_m
4    170.4 Greenspotted Rockfish      0.389
5    167.1             Bocaccio       0.390
6    163.1 Greenspotted Rockfish      0.393
7    193.1       Copper Rockfish      0.404
8    108.1   Shortbelly Rockfish      0.405
9    114.2       Spotted Ratfish      0.405
10   190.1          Chilipepper …
Run Code Online (Sandbox Code Playgroud)

r

0
推荐指数
1
解决办法
61
查看次数

标签 统计

r ×3

perl ×2

bash ×1

metaprogramming ×1

out-of-memory ×1

shell ×1

sorting ×1