我如何使用R从一个大的文本文件中拖出几行选择行?

我如何使用R从一个大的文本文件中拖出几行选择行?,r,R,我对堆栈溢出相当陌生,但在搜索引擎中没有发现。如果不应该在这里问这个问题,请告诉我 我有一个很大的文本文件。它有16个条目,每个条目如下所示: AI_File 10 Version Date 20200708 08:18:41 Prompt1 LOC Resp1 H**** Prompt2 QUAD Resp2 1012 TransComp c-p-s Model Horizontal ### Computed Results LAI 4.36 SEL

我对堆栈溢出相当陌生,但在搜索引擎中没有发现。如果不应该在这里问这个问题,请告诉我

我有一个很大的文本文件。它有16个条目,每个条目如下所示:

AI_File 10
Version 
Date    20200708 08:18:41
Prompt1 LOC    
Resp1   H****
Prompt2 QUAD   
Resp2   1012   
TransComp   c-p-s
Model   Horizontal
### Computed Results
LAI 4.36
SEL 0.47
ACF 0.879
DIFN    0.031
MTA 40.
SEM 1.
SMP 5
### Ring Summary
MASK    1   1   1   1   1
ANGLES  7.000   23.00   38.00   53.00   68.00
AVGTRANS    0.038   0.044   0.055   0.054   0.030
ACFS    0.916   0.959   0.856   0.844   0.872
CNTCT#  3.539   2.992   2.666   2.076   1.499
STDDEV  0.826   0.523   0.816   0.730   0.354
DISTS   1.008   1.087   1.270   1.662   2.670
GAPS    0.028   0.039   0.034   0.032   0.018
### Contributing Sensors
### Observations
A   1   20200708 08:19:12   x   31.42   38.30   40.61   48.69   60.28
L   2   20200708 08:19:12   1   5.0e-006
B   3   20200708 08:19:21   x   2.279   2.103   1.408   5.027   1.084
B   4   20200708 08:19:31   x   1.054   0.528   0.344   0.400   0.379
B   5   20200708 08:19:39   x   0.446   1.255   2.948   3.828   1.202
B   6   20200708 08:19:47   x   1.937   2.613   5.909   3.665   5.964
B   7   20200708 08:19:55   x   0.265   1.957   0.580   0.311   0.551
几乎所有这些都是垃圾信息,我希望为整个文件运行一些代码,只为所有16个条目提供“Resp2”和“LAI”行。这样的任务在R中可行吗?如果是,我会怎么做


非常感谢您提供的任何帮助,如果还有更多信息需要澄清,请告诉我。

我已将您的文件保存为文本文件,并在行中进行了阅读。然后可以使用regex提取所需的行。然而,我觉得我的方法相当笨拙,我打赌还有更优雅的方法(也许还可以使用(unix)命令行工具)


data基于tidyverse的解决方案可以如下所示

library(dplyr)
library(vroom)
library(stringr)
library(tibble)
library(tidyr)

vroom_lines('data') %>%
  enframe() %>%
  filter(str_detect(value, 'Resp2|LAI')) %>%
  transmute(value = str_squish(value)) %>%
  separate(value, into = c('name', 'value'), sep = ' ')

#   name  value
#   <chr> <chr>
# 1 Resp2 1012 
# 2 LAI   4.36 
库(dplyr)
图书馆(vroom)
图书馆(stringr)
图书馆(tibble)
图书馆(tidyr)
vroom_行('数据')%%>%
enframe()%>%
过滤器(str|U检测(值'Resp2 | LAI'))%>%
变形(值=str_squish(值))%>%
分离(值,分为=c('name','value'),sep='')
#名称值
#    
#1响应2 1012
#2.4.36

谢谢您的回复!当我运行“DATAYAXCracTTHT”时,意味着你只有18个条目用于RES2,但是对于LAI只有19个条目,因为在DATA框架中,所有列的长度都是相同的,所以它给出了一个错误的感谢!这就解决了这个问题。这个代码很好,我真的很感激帮助。很高兴我能帮助。如果答案是有用的,请考虑接受它。
library(dplyr)
library(vroom)
library(stringr)
library(tibble)
library(tidyr)

vroom_lines('data') %>%
  enframe() %>%
  filter(str_detect(value, 'Resp2|LAI')) %>%
  transmute(value = str_squish(value)) %>%
  separate(value, into = c('name', 'value'), sep = ' ')

#   name  value
#   <chr> <chr>
# 1 Resp2 1012 
# 2 LAI   4.36