小编use*_*607的帖子

sed替换完全匹配

我想使用sed更改文件中的某些名称.这是文件的样子:

#! /bin/bash

SAMPLE="sample_name"
FULLSAMPLE="full_sample_name"

...
Run Code Online (Sandbox Code Playgroud)

现在我只想使用sed更改sample_name而不是full_sample_name

我试过这个

sed s/\<sample_name\>/sample_01/g ...
Run Code Online (Sandbox Code Playgroud)

我认为\ <>可以用来找到完全匹配,但是当我使用它时,没有任何改变.

添加''有助于仅更改sample_name.但是现在还有另一个问题:我的情况比上面解释的要复杂一些,因为我的sed命令嵌入在一个循环中:

while read SAMPLE
do
    name=$SAMPLE
    sed -e 's/\<sample_name\>/$SAMPLE/g' /path/coverage.sh > path/new_coverage.sh
done < $1
Run Code Online (Sandbox Code Playgroud)

因此,应使用附加到$ SAMPLE的值更改sample_name.但是,在运行命令时,sample_name更改为$ SAMPLE,而不是更改为附加到$ SAMPLE的值.

sed

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

向用户提示多个问题(是/否和文件名输入)

我想问用户多个问题.我有两种类型的问题:Y/N或文件名输入.我不知道如何把这一切都放到一个漂亮的if结构中.而且我不确定我是否也应该使用'else'语句.有人可以帮助我们吗?这是我到目前为止:

print "Do you want to import a list (Y/N)?"; # first question yes/no
my $input = <STDIN>;
chomp $input;
    if ($input =~ m/^[Y]$/i){ #match Y or y
        print "Give the name of the first list file:\n";
        my $list1 = <STDIN>; 
        chomp $list1;
        print "Do you want to import another gene list file (Y/N)?";
            if ($input =~ m/^[Y]$/i){
                 print "Give the name of the second list file:\n" # can I use $input or do I need to define …
Run Code Online (Sandbox Code Playgroud)

perl

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

R:使用lapply添加新列

我想向列表的每个数据框添加一列,其中将两列(col1和col2)的值连接在一起

# create new column #
original.list <- lapply(original.list, cbind, new_column = c(""))
# add data to new column
new.list <- lapply(original.list, function (x) x$new_column = paste(x$col1, x$col2, sep = "_"))
Run Code Online (Sandbox Code Playgroud)

但是,这似乎是错误的,因为结果是仅包含新列的列表。

这就是我original.list的每个数据框的样子

col1    col2
name1   1
name2   2
name3   3
Run Code Online (Sandbox Code Playgroud)

这就是我的new.list的每个数据框的外观

col1    col2    new_column
name1   1       name1_1
name2   2       name2_2
name3   3       name3_3
Run Code Online (Sandbox Code Playgroud)

r

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

排序数值R.

我有一个表(out)看起来像这样:

V1    V2    V3
A     x     0
A     y     1
A     z     10
A     a     11
A     b     12
...   ...   ...
A     c     2
A     d     21
A     e     22
...   ...   ...
A     f     3
Run Code Online (Sandbox Code Playgroud)

我使用此功能基于V3对此表进行了排序

sorted.out <- out[order(out$V3), ]   
Run Code Online (Sandbox Code Playgroud)

但是我希望V3中的值按数字顺序排列,如1,2,3,4,...,10,11,12 ......,而不是现在的1,10,11,12,......

我怎样才能做到这一点?

当我使用str(out)时,我的V3作为因子变量出现.我应该把它改成数字吗?

r

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

R列表 - 组合具有相同名称的元素

我在 R 中有一个列表:

A = list(c(1,4), 2, 3, c(1,4))

names(A) <- c("name 1", "name 2", "name 2", "name 3")

$`name 1`
[1] 1 4

$`name 2`
[1] 2

$`name 2`
[1] 3

$`name 3`
[1] 1 4
Run Code Online (Sandbox Code Playgroud)

我想组合具有相同名称的列表元素。输出看起来像这样

$`name 1`
[1] 1 4

$`name 2`
[1] 2 3

$`name 3`
[1] 1 4
Run Code Online (Sandbox Code Playgroud)

我将如何实现这一目标?

r list

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

barplot()基于列中类别数的条形图的不同颜色的灰色

我在R中有一个数据帧.在每个数据帧中有8个变量.

我想制作一个条形图,我想根据一个特定变量中的值为条形指定不同的灰度.

这就是我制作一个条形图的方式:

barplot(x$cov, names.arg = x$exon, 
    xlab = x$gene[1],
    ylab = "read depth" , 
    border = gray.colors(???))
Run Code Online (Sandbox Code Playgroud)

变量外显子由整数组成.例如:

0 0 0 0 1 1 1 2 2 3 3 3 3 4 4 4
Run Code Online (Sandbox Code Playgroud)

所以我希望所有的酒吧$exon = 0都是一个灰色的阴影所有的酒吧$exon = 1都是另一个灰色等等......

有人可以帮我一把吗?

r

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

删除空格,但保持标签

我有一个带有3列的制表符分隔的文本文件.

在某些列中,我要删除单个或多个空格.但我想保持每列之间的标签分隔以及换行符.

我试过了

perl -lape 's/\s+//sg
Run Code Online (Sandbox Code Playgroud)

但这会删除所有空格,也会删除制表符空格

我的文件看起来像这样

col1 col2    col3
1    test    test
2       test test
3     test    test
Run Code Online (Sandbox Code Playgroud)

而且我要

col1   col2   col3
1      test   test
2      test   test
3      test   test
Run Code Online (Sandbox Code Playgroud)

所以我只想保留不同列之间的制表空间,而不是单个空格.我希望这很清楚.

perl awk sed

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

R sub提取字符最后一次出现之前的所有内容

我有以下向量c:

ABC-XXX
DEF-4-YYY
Run Code Online (Sandbox Code Playgroud)

我想提取最后一次出现的“-”之前的所有内容,这意味着我将保留此内容

ABC
DEF-4
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

sub([-].*, '', "DEF-4-YYY")
Run Code Online (Sandbox Code Playgroud)

但这会替换第一个“-”之后的所有内容,而应该寻找最后一个“-”。上面命令的输出是:

"DEF"
Run Code Online (Sandbox Code Playgroud)

怎么了

r

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

R-数据框列表-计算并添加新行

我有以下数据框列表

d1 <- data.frame(var1 = 10, var2 = 20, var3 = 30)
d2 <- data.frame(var4 = 40, var5 = 50, var6 = 60)
my.list <- list(d1, d2)

> my.list
[[1]]
    var1 var2 var3
  1   10   20   30

[[2]]
    var4 var5 var6
  1   40   50   60
Run Code Online (Sandbox Code Playgroud)

现在,我想向每个包含以下内容的数据框添加新行:

values <- c(0.75, 0.5, 0.25)

d1$var1 * values[1] #new second row d1
d1$var1 * values[2] #new third row d1
d1$var1 * values[3] #new fourth row d1
Run Code Online (Sandbox Code Playgroud)

需要对每个数据帧中的所有$ var变量以及列表中的所有数据帧进行此操作。

新的d1看起来像这样:

    var1 var2 var3
  1   10 …
Run Code Online (Sandbox Code Playgroud)

r list

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

bash-提取以数字开头的变量的一部分

我在bash脚本中有以下变量'VAR1':

VAR1 = "/path/to/file/190909_AAA_ZZZ/"
Run Code Online (Sandbox Code Playgroud)

现在,我想创建一个仅包含“ 190909”部分的变量(VAR2)。

我想通过提取以任意6位数字​​开头的部分(190909)直到下一个“ _”来做到这一点

如何做到这一点?

VAR2 = ${grep ... $VAR1} ???
Run Code Online (Sandbox Code Playgroud)

bash

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

标签 统计

r ×6

list ×2

perl ×2

sed ×2

awk ×1

bash ×1