小编use*_*130的帖子

awk打印列$ 3如果$ 2 ==具体值?

我正在从awk编程语言中学习awk,并被这个例子所困扰.

如果我想打印$ 3,如果$ 2等于一个值(例如'1'),我正在使用这个命令工作正常:

awk '$2==1 {print $3}' <infile> | more
Run Code Online (Sandbox Code Playgroud)

但是当我用另一个搜索条件替换1时,例如'findtext',这个命令不起作用.

awk '$1== findtext {print $3}' <infile> | more
Run Code Online (Sandbox Code Playgroud)

这没有返回任何输出,我确定我放在'findtext'中的内容存在于那个地方.我的语法有什么问题吗?

我试过这个,但它不起作用:

awk '$1== "findtext" {print $3}' <infile> | more
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做

1 11 0.959660297 0 0.021231423 -0.0073 -0.0031 MhZisp
2 14 0.180467091 0.800424628 0 0.0566 0.0103 ClNonZ
3 19 0.98089172 0 0 -0.0158 0.0124 MhNonZ
4 15 0.704883227 0.265392781 0.010615711 -0.0087 -0.0092 MhZisp
5 22 0.010615711 0.959660297 0.010615711 0.0476 0.0061 ClNonZ
6 23 0.715498938 0 0.265392781 -0.0013 -0.0309 Unkn
7 …
Run Code Online (Sandbox Code Playgroud)

linux shell awk

101
推荐指数
4
解决办法
26万
查看次数

如何从多个文件中提取一列,并将这些列粘贴到一个文件中?

我想从多个文件中提取第5列,按数字顺序命名,并将这些列按顺序粘贴到一个输出文件中.

文件名看起来像:

sample_problem1_part1.txt
sample_problem1_part2.txt

sample_problem2_part1.txt
sample_problem2_part2.txt

sample_problem3_part1.txt
sample_problem3_part2.txt
......
Run Code Online (Sandbox Code Playgroud)

每个问题文件(1,2,3 ......)都有两个部分(第1部分,第2部分).每个文件具有相同的行数.内容如下:

sample_problem1_part1.txt
1 1 20 20 1
1 7 21 21 2
3 1 22 22 3
1 5 23 23 4
6 1 24 24 5
2 9 25 25 6
1 0 26 26 7

sample_problem1_part2.txt
1 1 88 88 8
1 1 89 89 9
2 1 90 90 10
1 3 91 91 11
1 1 …
Run Code Online (Sandbox Code Playgroud)

linux shell paste

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

按数字顺序并排粘贴多个文件

我在目录中有许多文件,文件名类似于file1,file2,file3,file4,file5,.....,file1000.它们具有相同的尺寸,每个都有5列和2000行.我想将它们以数字顺序并排粘贴到一个大文件中,因此最终的大文件应该有5000列和2000行.

我试过了

for x in $(seq 1 1000); do 
paste `echo -n "file$x "` > largefile
done
Run Code Online (Sandbox Code Playgroud)

我可以用数字顺序(file1,file2,file3,file4,file5,...,file10,file11,...,file1000)粘贴这些文件,而不是在命令行中写入所有文件名?

例如:

文件1

1 1 1 1 1
1 1 1 1 1 
1 1 1 1 1
...
Run Code Online (Sandbox Code Playgroud)

文件2

2 2 2 2 2 
2 2 2 2 2
2 2 2 2 2 
....
Run Code Online (Sandbox Code Playgroud)

档案3

3 3 3 3 3 
3 3 3 3 3 
3 3 3 3 3
....
Run Code Online (Sandbox Code Playgroud)

粘贴file1 file2 file3 ....文件1000> largefile

largefile

1 1 1 1 …
Run Code Online (Sandbox Code Playgroud)

shell paste

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

使用 Pandas 分析超过 20G 的数据帧,内存不足,指定 chunksize 时仍然不起作用

我有以下代码来分析一个巨大的数据帧文件(22G,超过 200 万行和 3K 列)。我在一个较小的数据框中测试了代码,它运行正常 ( head -1000 hugefile.txt)。但是,当我在巨大的数据帧上运行代码时,它给了我“分段错误”核心转储。它输出一个 core.number 二进制文件。

我做了一些互联网搜索并想出了使用low_memory =False, 并尝试通过定义读取数据帧chunksize=1000, iterator= True,然后 pandas.concat 块,但这仍然给我带来了内存问题(核心转储)。它甚至不会在核心转储之前读取整个文件,因为我测试只是读取文件并打印一些文本。请帮助并告诉我是否有解决方案可以分析这个巨大的文件。

版本

python 版本:3.6.2
numpy 版本:1.13.1
熊猫版本:0.20.3
操作系统:Linux/Unix

脚本

#!/usr/bin/python
import pandas as pd
import numpy as np

path = "/path/hugefile.txt"
data1 = pd.read_csv(path, sep='\t', low_memory=False,chunksize=1000, iterator=True)
data = pd.concat(data1, ignore_index=True)

#######

i=0
marker_keep = 0
marker_remove = 0
while(i<(data.shape[0])):
    j=5 #starts at 6
    missing = 0
    NoNmiss = 0
    while (j < (data.shape[1]-2)):
        if pd.isnull(data.iloc[i,j]) == True: …
Run Code Online (Sandbox Code Playgroud)

python numpy out-of-memory pandas

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

R:比较两个模型的似然比检验,但缺失的数据使两个模型不在同一维度

我正在尝试在两个模型之间进行似然比检验.

glm.model1 <- glm(result ~ height + weight )
glm.model2 <- glm(result ~ hight + weight + speed + speed : height + speed : weight )
require(lmtest)    
a <- lrtest(glm.model1, glm.model2)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error in lrtest.default(glm.model1, glm.model2) : 
models were not all fitted to the same size of dataset
Run Code Online (Sandbox Code Playgroud)

我知道我的一些"速度"数据丢失,但没有高度和重量数据丢失,因此模型2包含变量"速度"但模型1没有,模型2由于缺失而被glm删除了数据点.因此,当我在模型2和模型1之间进行似然比检验时,数据维度不相等,我最终得到如上所述的错误消息.有没有办法可以查找模型2中删除的数据点,所以在我的简化模型中,我可以包含一些脚本来删除相同的数据点,以保持数据的维度相同?

这是我尝试过的:

1)添加na.action = na.pass以保留模型2中的所有缺失数据,但它不起作用.

2)试过:

glm.model1 <- glm(result ~ height + weight + speed - speed )
## This does work and it gets rid of the sample with "speed" …
Run Code Online (Sandbox Code Playgroud)

r

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

标签 统计

shell ×3

linux ×2

paste ×2

awk ×1

numpy ×1

out-of-memory ×1

pandas ×1

python ×1

r ×1