【问题标题】:Data extraction and cleaning | Reading txt file and using grep数据提取与清洗 |读取txt文件并使用grep
【发布时间】:2021-02-19 09:42:48
【问题描述】:

我正在使用 read.csv2 读取多个 txt 文件,它将它们保存为 tibble 格式。

然后我想用某个字符串“纳斯达克”提取行号并删除它上面的所有行和另一个字符串“结束”并删除它下面的所有行。现在,当我使用 grep 执行此操作时,它始终返回 1 作为值,例如,如果我的“纳斯达克”行是第 3 行。另外请注意,可能有 2 个“END”行,我想选择第一个。下面给出一个例子

然后我会将剩余的行组合成一个连续的文本并保存在一个数据框中。

*# A tibble: 12 x 1*
   X1                                                       
   *<chr>*                                                    
 1 "AMERICAN EXPRESS"           
 2 "Date: Aug 13 2020 12:01:33"                             
 3 "NASDAQ"           
 4 "Lorem ipsum dolor sit amet
 5 "consectetur adipiscing elit, sed do eiusmod tempor incididunt" 
 6 "aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
 7 "laboris nisi ut aliquip ex ea commodo consequat."     
 8 "Aug/13/2020"                                            
 9 "End"                              
10 "Copyright (c) 2020"                                     
11 "END of story"
12 "\f"   

【问题讨论】:

    标签: r data-cleaning


    【解决方案1】:

    使用match 获取'NASDAQ''End' 所在位置的索引,并将它们之间的所有值粘贴到一个字符串中。

    start <- match('NASDAQ', df$X1)
    end <- match('End', df$X1)
    text <- paste0(df$X1[start:end], collapse = ' ')
    text
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-21
      • 2018-04-12
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多