簡體   English   中英

將特定行從“ txt”導入R

[英]import specific rows from “txt” into R

我有一個“ example.txt”文件,如下所示:

SIGNAL: 40 41 42                                            
0.406   0.043   0.051   0.021   0.013                   
0.056   0.201   0.026   0.009   0.000                   
0.000   0.128   0       0.009   0.000                               
TOTAL: 0.657                                            
SIGNAL: 44 45 46 48                                         
0.128   0.338   0.026                       
0.333   0.03    0.000                           
0.060   0.013   0.004                           
0.009   0.017   0.009                           
0.013   0       0.000                           
TOTAL: 0.704                                            
SIGNAL: 51 52 54                                            
0.368   0.081   0.085   0.004                       
0.162   0.09    0.064   0.073                       
0.013   0.017   0.009   0.000                       
TOTAL: 0.266                                            
SIGNAL: 60 61 62 63 64 65 66 67                                         
0.530   0.030                                   
0.009   0.179                                   
0.154   0.004                                   
0.068   0.009                                   
TOTAL: 0.796    

我想將“ SIGNAL:44 45 46 48”和“ TOTAL:0.704”之間的行導入R中,我使用read.table("example.txt",skip=6 ,nrow=5)提取這些特定行,有用。

     V1    V2    V3
1 0.128 0.338 0.026
2 0.333 0.030 0.000
3 0.060 0.013 0.004
4 0.009 0.017 0.009
5 0.013 0.000 0.000

但是,我的實際數據(有450,000行)非常大,如果我要提取“ SIGNAL:3000 3001 3002 3003”和下一個“ TOTAL”之間的行,該如何處理? 非常感謝!

我已經根據akrun的代碼進行了計算。 例如,我要提取前兩個集合。 我可以使用:

lines <- readLines('example.txt')
g<-c(40,44)
sapply(1:length(g), function(x){Map(function(i,j) read.table(text=lines[(i+1):(j-1)], sep='', header=FALSE), grep(paste('SIGNAL:',g[x]), lines), grep('TOTAL', lines)[which(grep(paste('SIGNAL:',g[x]), lines)==grep('SIGNAL', lines))])})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM