小编Abd*_*del的帖子

R:我怎么画一条有多个箭头的线?

我想知道是否有人可以帮我在R中用多个箭头绘制线条,如下所示:

---> ---> ---> --->

提前致谢!

plot r

3
推荐指数
1
解决办法
3383
查看次数

perl(Statistics :: PCA):不能使用字符串("0")作为ARRAY引用,而"strict refs"

我正在尝试使用Statistics :: PCA包对某些遗传变异进行PCA.该软件包需要读入列表列表(如果我理解正确,可以是一个数组数组,对吧?).

下面是我的代码的一部分,我为每个人创建数组(每个人都是一个真正的人类主体,获得一个填充0和1的数组,代表是否存在称为"SV"的遗传变体),然后将它们推送到名为@LoL_SVs的数组数组中:

my @LoL_SVs;

foreach (@individuals) {
    my $ind = $_;
    foreach (@all_SVs) {
        if ($SV{$ind}{$_} != 1) {
            push(@{$SVs{$ind}}, "0");
        }
        if ($SV{$ind}{$_} == 1) {
            push(@{$SVs{$ind}}, "1");
        }
    }
    push @LoL_SVs, [ @{$SVs{$ind}} ];
} 
Run Code Online (Sandbox Code Playgroud)

然后我尝试加载模块的CPAN网站上描述的数据(参见*load_data*段落):

use Statistics::PCA;

my $pca = Statistics::PCA->new;

$pca->load_data ( { format => 'table', data => @LoL_SVs, } ); 
# ^ this line is where it goes wrong
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用,我收到错误消息:

在/home/abdel/myperl/share/perl/5.10.1/Statistics/PCA.pm第189行使用"严格引用"时,不能使用字符串("0")作为ARRAY引用.

知道这里可能出现什么问题吗?

我希望问题得到明确规定,否则如果您需要更多信息,请告诉我!非常感谢!

perl strict ref

3
推荐指数
1
解决办法
4164
查看次数

R:使用colorRampPalette的透明色

我有以下代码用渐变绘制箭头:

csa <- function(x1,y1,x2,y2,first.col,second.col,length=0.15, ...) {
  cols <- colorRampPalette( c(first.col,second.col))(250)
  x <- approx(c(0,1),c(x1,x2), xout=seq(0,1,length.out=251))$y
  y <- approx(c(0,1),c(y1,y2), xout=seq(0,1,length.out=251))$y

  arrows(x[250],y[250],x[251],y[251], col=cols[250],length=length, ...)
  segments(x[-251],y[-251],x[-1],y[-1],col=cols, ...)

}

color.scale.arrow <- Vectorize(csa, c('x1','y1','x2','y2') )

# Create sample data
x <- c(1,3,5,3,2,1,6,2)
y <- c(2,5,3,7,2,1,5,6)

x1 <- c(1,3,5,3)
y1 <- c(2,5,3,7)
x2 <- c(2,1,6,2)
y2 <- c(2,1,5,6)

# Plot sample data
plot(x,y, main='')
color.scale.arrow(x1,y1,x2,y2,'#5F9EA0','#CD3333',lwd=2)
Run Code Online (Sandbox Code Playgroud)

哪个产生了这个图:

在此输入图像描述

我想让这些线条透明,但只是在颜色代码中添加50(即透明度的比例= 50%)不幸的是:

# Plot sample data (transparent?)
plot(x,y, main='')
color.scale.arrow(x1,y1,x2,y2,'#5F9EA050','#CD333350',lwd=2)
Run Code Online (Sandbox Code Playgroud)

知道为什么这不起作用,以及如何使这些线条透明?

plot transparency r colors

3
推荐指数
1
解决办法
1316
查看次数

在 awk 中使用通配符

使用 awk,我想打印第一列中包含以 22_ 开头的字符串的所有行

我尝试了以下操作,但显然 * 在 awk 中不能用作通配符:

awk '$1=="22_*" {print $0}' input > output
Run Code Online (Sandbox Code Playgroud)

这在awk中可能吗?

awk wildcard

3
推荐指数
1
解决办法
6997
查看次数

Perl:如果包中的子程序将某些内容打印到我的终端,如何在不更改包的情况下在程序中使用其输出?

我在Perl(Biomart)中使用一个包打印出查询结果.打印输出的语法如下所示:

$query_runner->execute($query);
$query_runner->printResults();
Run Code Online (Sandbox Code Playgroud)

并将我的查询结果打印到我的终端.相反,我希望打印的内容打印到输出文件.我试过了:

$output = "@ARGV[1]";
open OUT , ">$output" or die "Can't open $output: @ARGV[1].txt!\n";
$query_runner->execute($query);
print OUT $query_runner->printResults();
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用,子程序printResults()仍然打印到我的终端而不是输出文件.有没有办法将其输出打印到我的outputfile而不更改包本身的子程序?

perl

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

Perl:将输出写入由哈希定义的不同文件?(这有可能吗?)

好吧,这段代码可能看起来很奇怪,但这是我知道如何解释我想要做的唯一方法:

$output{$key1}{$key2} = $filename;
open OUT{$key1}{$key2} , ">$output{$key1}{$key2}" or die "Can't open $output: $filename!\n";

print OUT{$key1}{$key2} "$some_variable{$key1}{$key2}\n";
Run Code Online (Sandbox Code Playgroud)

显然,这不起作用.但是我需要一种方法以类似于这个的方式定义输出文件,因为我的输入文件中有2个关键变量({$ key1} {$ key2}),我必须使用它来决定写入哪个文件输出到(我想拥有尽可能多的输出文件,因为我有这两个关键变量的组合).

我希望我的问题很清楚,否则请让我知道......

perl hash

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

绘制连续变量的两个直方图,其中条彼此相邻而不是重叠

我试图在一个图中绘制两个直方图,但这两个组的分布方式使得直方图有点难以解释.我的直方图现在看起来像这样:

在此输入图像描述

这是我的代码:

hist(GROUP1, col=rgb(0,0,1,1/2), breaks=100, freq=FALSE,xlab="X",main="")  # first histogram
hist(GROUP1, col=rgb(1,0,0,1/2), breaks=100, freq=FALSE , add=T)  # second
legend(0.025,600,legend=c("group 1","group 2"),col=c(rgb(1,0,0,1/2),rgb(0,0,1,1/2)),pch=20,bty="n",cex=1.5)
Run Code Online (Sandbox Code Playgroud)

是否可以绘制这个直方图,两组的条彼此相邻,而不是重叠?我意识到这可能会增加一些混乱,因为X轴代表一个连续的变量......如何使这个情节更清晰的其他建议当然也是受欢迎的!

plot r histogram

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

ls:如何在每一行显示目录+文件名

我有一个包含很多子目录的目录,我希望在每一行列出所有具有特定扩展名的文件,包括它们所在的(子)目录.我现在使用:

ls /home/directory -R | grep ".ext" > files.txt
Run Code Online (Sandbox Code Playgroud)

这不会给我我正在寻找的输出...理想情况下我想要一个看起来像这样的输出:

/home/directory/subdirectory1/file1.ext               4.3Mb
/home/directory/subdirectory1/subsubdir1/file2.ext    3.3Mb
/home/directory/subdirectory2/file3.ext               4.6Mb
/home/directory/subdirectory3/file4.ext               5.2Mb
... etc
Run Code Online (Sandbox Code Playgroud)

甚至更好,目录和文件名在不同的列中:

/home/directory/subdirectory1/               file1.ext    4.3Mb
/home/directory/subdirectory1/subsubdir1/    file2.ext    3.3Mb
/home/directory/subdirectory2/               file3.ext    4.6Mb
/home/directory/subdirectory3/               file4.ext    5.2Mb
... etc
Run Code Online (Sandbox Code Playgroud)

关于如何做到这一点的任何想法?非常感谢!

unix bash ls

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

向图例添加额外项目

我有以下数据:

trait,beta,se,p,analysis,signif
trait1,0.078,0.01,9.00E-13,group1,1
trait2,0.076,0.01,1.70E-11,group1,1
trait3,-0.032,0.01,0.004,group1,0
trait4,0.026,0.01,0.024,group1,0
trait5,0.023,0.01,0.037,group1,0
trait1,0.042,0.01,4.50E-04,group2,1
trait2,0.04,0.01,0.002,group2,1
trait3,0.03,0.01,0.025,group2,0
trait4,0.025,0.01,0.078,group2,0
trait5,0.015,0.01,0.294,group2,0
trait1,0.02,0.01,0.078,group3,0
trait2,0.03,0.01,0.078,group3,0
trait3,0.043,0.01,1.90E-04,group3,0
trait4,0.043,0.01,2.40E-04,group3,1
trait5,0.029,0.01,0.013,group3,0
Run Code Online (Sandbox Code Playgroud)

并使用以下代码制作一个图:

library(ggplot2)
ggplot(GEE, aes(y=beta, x=reorder(trait, beta), group=analysis)) + 
  geom_point(data = GEE[GEE$signif == 1, ],
             color="red",
             shape = "*", 
             size=12, 
             show.legend = F) +
  geom_point(aes(color=analysis)) +
  geom_errorbar(aes(ymin=beta-2*se, ymax=beta+2*se,color=analysis), width=.2,
                position=position_dodge(.2)) +
  geom_hline(yintercept = 0) +
  theme_light() +
  theme(axis.title.y=element_blank(),
        legend.title=element_blank()) +
  coord_flip() 
Run Code Online (Sandbox Code Playgroud)

这给了我以下情节:

在此输入图像描述

我想在图例中添加一个额外的元素,即红色星号,我想让它说"重要".我该怎么做呢?

PS.如果您喜欢这段代码,我还有另一个问题,在这里指定:)

r ggplot2

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

如果我按字面输入其参数,为什么这个子例程会起作用,但如果我以变量的形式给出参数呢?

我使用的是perl软件包(Biomart),它包含一个名为addFilter()的子程序.该子程序需要一些参数,包括一个需要格式为"nr:nr:nr"的参数.

如果我按如下方式使用子程序,它可以正常工作:

$query->addFilter("chromosomal_region", ["1:1108138:1108138","1:1110294:1110294"]);
Run Code Online (Sandbox Code Playgroud)

但是,如果我像这样使用它,它不起作用:

my $string = '"1:1108138:1108138","1:1110294:1110294","1:1125105:1125105"';
$query->addFilter("chromosomal_region", ['$string']);
Run Code Online (Sandbox Code Playgroud)

由于我在for循环中构造了成千上万的这些参数,我真的需要第二种工作方式......可能导致这种情况的原因是什么?我希望有人可以帮助我,非常感谢!

perl

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

awk:打印制表符分隔而不是空格分隔的文件

我正在使用此awk命令打印出文件的某些列

awk '{print $1,$2,$3,$5,log($11),$12}' inputfile > outputfile
Run Code Online (Sandbox Code Playgroud)

输入文件用制表符分隔,输出文件用空格分隔。我也需要将输出文件制表符分隔。我试过了,但这仍然给我一个空格分隔的文件:

awk 'BEGIN{FS="\t"}{print $1,$2,$3,$5,log($11),$12}' inputfile > outputfile
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?非常感谢!

awk

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

awk:添加新列,包括标题

我有一个如下所示的文件:

name measurement gender duration
a 1 m 55
b 1 f 54
c 2 m 53
... etc
Run Code Online (Sandbox Code Playgroud)

我想使用 awk 添加一列,除了第一行(标题)之外,每一行都具有相同的值。假设我想为每行添加值为 99 的列 new_column,因此输出文件如下所示:

name measurement gender duration new_column
a 1 m 55 99
b 1 f 54 99
c 2 m 53 99
... etc
Run Code Online (Sandbox Code Playgroud)

这听起来像是 awk 的工作...但我一直不知道如何做。有任何想法吗?非常感谢!

awk

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

比较两个哈希中的所有元素更有效

我在perl中有两个哈希值,每个哈希值由大约250,000个元素组成.我必须将两个哈希值中的每个元素相互比较,并对彼此相等的元素执行另一个操作.我有以下代码,它进行了大约600亿次比较,因此需要很长时间才能完成:

foreach $key1 (keys %large_hash_1)
    {
    foreach $key2 (keys %large_hash_2)
        {
        if($some_other_var{$key1} == $some_other_var{$key2}) # so actually I compare another hash variable, using the keys from %large_hash_1 and %large_hash_2
             {
             # I print some stuff here to an output file using the $key1 and $key2 variables
             }
        }
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法更快地完成这项工作?

perl hash

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

标签 统计

perl ×5

r ×4

awk ×3

plot ×3

hash ×2

bash ×1

colors ×1

ggplot2 ×1

histogram ×1

ls ×1

ref ×1

strict ×1

transparency ×1

unix ×1

wildcard ×1