小编Enr*_*que的帖子

如何以有序的方式粘贴多个文件中的列?

我有一个不同文件名的输出:file_1.dat..file_15.dat

我正在使用此命令:

paste result_*.dat | column -s $'\t' -t >> cache/Final_Evolution.dat
Run Code Online (Sandbox Code Playgroud)

但我的输出文件以这种方式排序,我不知道为什么:

file_1.dat
file_11.dat
file_13.dat
file_15.dat
file_3.dat
file_5.dat
file_7.dat
file_9.dat
Run Code Online (Sandbox Code Playgroud)

所以,当我使用上面提到的命令时,数据列的顺序是1,11,13 ...当我想要1,3,5,7 ......

非常感谢你提前.

bash file multiple-columns .bash-profile

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

如何在R中使用命令"pwd"来加载数据?

在我的Rscripts中,通常,我使用最简单的方法来加载文件.

data1 <- read.table("~/user/document/data/cache/distances.dat", quote="\"", comment.char="")
Run Code Online (Sandbox Code Playgroud)

但是我想在其他计算机上使用这个脚本,因此路径会改变.

缓存目录始终与文件距离一致.在我的Bash脚本中,我使用它来避免这个问题:

WORKING_DIRECTORY=`pwd`/cache 
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在R中使用它.

我想要的是:

data1 <- read.table("'pwd'/cache/distances.dat", quote="\"", comment.char="")
Run Code Online (Sandbox Code Playgroud)

r

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

如何删除字符串中的最后一个分号?

我正在处理许多字符串,例如这个结构:

=Cluster=
SPEC    PRD000681;PRIDE_Exp_Complete_Ac_22493.xml;spectrum=4691 true    LHDEEIQELQAQIQEQHVQIDMDVSKPDLTAALR  3940.8833   1   9913        0.9988012901749596
SPEC    PRD000681;PRIDE_Exp_Complete_Ac_22495.xml;spectrum=752  true    LHDEEIQELQAQIQEQHVQIDMDVSKPDLTAALR  3940.8833   1   9913        0.9988012901749596
Run Code Online (Sandbox Code Playgroud)

由于程序中存在生成文件的错误,有时会出现额外的分号,只有一个分号出现在它们不应出现的位置.例如:

=Cluster=
SPEC    PRD000681;;;;;PRIDE_Exp_Complete_Ac_22493.xml;spectrum=4691 true    LHDEEIQELQAQIQEQHVQIDMDVSKPDLTAALR  3940.8833   1    9913   ;   0.9988012901749596
SPEC    PRD000681;PRIDE_Exp_Complete_Ac_22495.xml;;;;spectrum=752   true    LHDEEIQELQAQIQEQHVQIDMDVSKPDLTAALR  3940.8833   1    9913   ;   0.9988012901749596
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我使用正则表达式s/;+/;/g;,awk '{gsub(/[;]+/,";")}1'input > output但我不知道如何删除最后一个分号而不影响第一个分号.

一个好的输出将是这样的:

=Cluster=
SPEC    PRD000681;PRIDE_Exp_Complete_Ac_22493.xml;spectrum=4691 true    LHDEEIQELQAQIQEQHVQIDMDVSKPDLTAALR  3940.8833   1   9913        0.9988012901749596
SPEC    PRD000681;PRIDE_Exp_Complete_Ac_22495.xml;spectrum=752  true    LHDEEIQELQAQIQEQHVQIDMDVSKPDLTAALR  3940.8833   1   9913        0.9988012901749596
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何在不影响第一个分号的情况下删除最后一个分号?

bash perl awk

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

如何测试数组中是否重复某个值?

我正在做一个子程序,它以数字列表作为参数.我想做的是检查该列表中是否有重复值.如果有重复的数字,请打印一条消息并停止该程序.如果没有重复的数字,继续执行.

例如:

if (there_is_number_repeated){
    print "There is a number repeated";}
else{
    run this code...}
Run Code Online (Sandbox Code Playgroud)

我试图用这个列表的值创建一个哈希值,然后检查是否有值> 1.

    use strict;
    use warnings;

sub name_subroutine{
    my (@numbers)=@_;
    my $n=scalar(@numbers);

    my %table=();

    foreach my $i(@numbers){
    if (exists $tabla{$i}){
        $tabla{$i}+=1;}
    else{
        $tabla{$i} = 1;
    }
my @values = values %tabla;
}
}
Run Code Online (Sandbox Code Playgroud)

它在这里,我不知道继续.有没有办法以业余的方式做到这一点?我是Perl的新手.

谢谢!

perl

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

标签 统计

bash ×2

perl ×2

.bash-profile ×1

awk ×1

file ×1

multiple-columns ×1

r ×1