小编Tom*_*Tom的帖子

如何让命令行Perl接受shell变量?

我可以做数学

perl -e 'print 5253413/39151' -l
Run Code Online (Sandbox Code Playgroud)

但是我不太了解如何利用Perl使用我自己的预定义bash变量进行数学运算的能力.我试过了

var1=$(some wc command that yields a number); var1=$(some wc that yields another number)
perl -e 'print var1/var2' -l
Run Code Online (Sandbox Code Playgroud)

但它不起作用

bash perl

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

check_call check_output调用和子进程模块中的Popen方法有什么实际区别?

老实说,我只是不理解"非零"状态的术语来真正解释在帮助页面上发生了什么或者意味着什么(甚至没有定义).有哪些使用python来调用其中这些进程的脚本的例子

subprocess.call subprocess.check_output subprocess.popen

真的不一样吗?你何时会使用其中任何一种,以及这些方法的消歧细节是什么?如果我想要简单的OS调用,我应该使用os.system吗?

python subprocess os.system popen

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

为什么我不能将"撤消"功能重新设置为ctrl + y而不是ctrl + shift + z.为什么我不能删除默认的"yank"命令

我需要ctrl + y来重做.我已经尝试将"redo"命令从ctrl + shift + z替换为ctrl + y,但无论什么,当我按下ctrl + y时它总是会执行"粘贴yank文本".

如果您不相信我,请尝试为自己重新创建此错误

除此之外,yank(ctrl + y)甚至不出现在键盘快捷键列表中.这令人沮丧,总是干扰我的工作.当切割和粘贴已经存在时,没有理由猛拉.我只需要正常的撤销/重做快捷方式行为,就像它在其他所有内容中一样,并且"yank"功能将永久地从我的键盘快捷方式中删除.要么是救星.

rstudio

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

如何让R根据ANOVA吐出F统计量的临界值?

R中ANOVA分析遗漏的一件事是它不会自动显示临界值.其他一切都给了.我可以说我的F值比应有的高,但我想知道截止位置的余量.有这个在线计算器根据自由度产生F统计的临界值,但我希望R这样做.http://www.danielsoper.com/statcalc/calculator.aspx?id=4

我该怎么做?

例:

>anova(anovaModel.model1)
                          Df  Sum Sq   Mean Sq F value    Pr(>F)    
data$SIZE    4 0.1193 0.027926  22.056 4.55e-16 ***
Residuals               1372 1.994 0.001352            
>F(variance.mod1)    #??
>F(4,1372 )          #Something like this?
Run Code Online (Sandbox Code Playgroud)

r anova

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

将stdout传递给Perl时,如何让它打印换行符?

我刚刚发现将stdout传输到Perl中,我很惊讶你甚至可以这样做:

[user@folder] $ echo print 1/3 | perl
0.33333[user@folder] $
Run Code Online (Sandbox Code Playgroud)

根据我的理解,你将print命令放入Perl,并使用Perl的代码进行浮点计算.请指正.但是,每次我这样做,我都会得到一个没有换行符的答案.我到处搜索,我只是不能将这些术语的关键字足以创建答案.

这是我正在谈论的内容的链接,在海报旁边 Thor: 我如何在bash中使用浮点除法?

他给出了一个惊人的答案,但我无法评论或给用户发消息,所以我决定在这里创建一个新问题.

我仍然试图围绕这是如何工作,变量.

$ three=3
$ echo $three/3 | perl
1[user@folder] $
Run Code Online (Sandbox Code Playgroud)

奖金问题:
它起初就像我试图让bash在算术运算中输出浮点数.我不明白为什么bc不能返回浮动.据说它可以,但它对我不起作用.

理想的情况是:

$ echo 1/3 | bc
0
$
Run Code Online (Sandbox Code Playgroud)

应该返回.333而不是0.我正在委托一个工具bc,并且bc应该能够做浮动.我只是不明白发生了什么.

bash terminal perl pipeline bc

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

我应该在什么情况下使用音译中的美元符号和单引号(例如.tr -d'\n')或任何其他函数?

说我试图删除换行符或carrige返回.我注意到,当我使用音译来删除换行符时tr -d '\n',我得到的结果与我tr -d $"\n"或是相同tr -d $'\n'.有什么不同?

我不确定在sed或grep中是如何应用的,因为它们更复杂.所以,我试图先找出tr,因为这似乎是一个更简单的bash程序.

bash tr

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

似乎无法遍历键是字符串的排序字典.如何对字典进行排序以进行迭代?

我有这个字典(dic),其中键是字符串,但字符串实际上只是数字.

我找不到迭代排序字符串的方法(因为排序字典不会按数字排序)

for j in sorted([int(k) for k in dic.iteritems()]):
    print dic[str(j)] #converting the integer back into a string for the key
Run Code Online (Sandbox Code Playgroud)

它给了我

KeyError异常

直觉上这应该有用,但我不明白为什么它没有.

python sorting dictionary

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

如何让 python 的“in”运算符只产生真正的单词匹配,而不仅仅是子字符串匹配?

这是所需的输出:

"bacillus thurungensis" in "bacillus thurungensis"
TRUE

"bacillus thurungensis" in "Sentence containing bacillus thurungensis."
TRUE

"bacillus thurungensis" in "Subspecies bacillus thurungensis34"
FALSE

"bacillus thurungensis" in "bacillus thurungensis, bacillus genus"
TRUE

"bacillus thurungensis" in "Notbacillus thurungensis, must match word"
FALSE
Run Code Online (Sandbox Code Playgroud)

Python 通常认为任何子字符串匹配都是好的,但我并不是在寻找这一点。我希望某些正则表达式或匹配运算符仅当且仅当它将查询视为主题中的单独单词而不仅仅是子字符串时才产生 true。这怎么能实现呢?

python regex substring pattern-matching string-matching

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

如何计算特定于每条线上提供的ID的值?

我有一个值如下所示的数据表:

Score ID
1.2    1
2.4    1
1.1    1
1.9    1
2.4    2
3.5    2
2.2    2
1.1    3
1.1    3
1.7    3
3.1    3
2.2    3
Run Code Online (Sandbox Code Playgroud)

我真正需要的是在单独的列中计算每个ID的更改分数,使其看起来像这样:

Score   ID  Changes
1.2     1   
2.4     1   1.2
1.1     1   -1.3
1.9     1   0.8
2.4     2   
3.5     2   1.1
2.2     2   -1.3
1.1     3   
1.1     3   0
1.7     3   0.6
3.1     3   1.4
2.2     3   -0.9
Run Code Online (Sandbox Code Playgroud)

注意每个"变化"是如何通过取得前一个分数并从当前分数中减去来计算的:例如,在第一个变化中,你得到1.2乘1.2 = 2.4(当前分数) - 1.2(前一个分数)

问题是这些分数只能仅与ID范围内的分数有关.你不能只是迭代并取得分数的差异.我该怎么做?我可以使用什么逻辑来测试在同一ID中包含"更改"?我熟悉R或python(或BASH)来做到这一点.

python r pandas

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