筛选过程未获取完整数据?使用dplyr过滤器和grep

时间:2018-12-19 20:08:14

标签: r dplyr

我有此日志文件,一行上最多有1200个字符(最多)。我想做的是先阅读此内容,然后将文件的某些部分提取到新列中。我想提取包含文本“ [DF_API:输入字符串]”的行。 当我阅读它,然后根据我感兴趣的行进行过滤时,几乎好像我正在丢失数据。我使用dplyr过滤器并使用具有相同结果的标准grep进行了尝试。

不确定为什么会这样。感谢您的帮助。代码和数据在以下链接中。 沙爹

代码在下面给出

<?php
  $i = 0;
  foreach($bgs as $bg) { ?>
  <?php $i++; ?>
      <div class="item <?php if($i == '1') echo "active"; ?> img-responsive" style="background-image: url('/new/images/<?=$bg['b_url']?>')" >
        <div class="metabox">
          <?php if(($bg['b_weight']) != '1000') { ?>
            <h1><?=$bg['w_titel']?></h1>
            <p><?=$bg['w_info']?> // <?=$bg['w_jahr']?> // <?=$bg['w_ort']?><?=$bg['w_function']?></p>
              <?php if (isset($_GET['w']) && (is_numeric($_GET['w']))) { ?>
                  <?=$bg['w_desc']?>
               <?php } else { ?>
                <p><a href="index.php?w=<?=$bg['werkid']?>&t=<?=$bg['urlslug']?>" target="_self">More</a></p>
                <?php } ?>
          <?php } else { ?>
            <h1><?=$bg['w_titel']?></h1>
            <p><?=$bg['w_info']?></p>
          <?php } ?>
        </div>
      </div>
  <?php } ?>

数据(和代码)在下面的链接中给出。抱歉,我应该使用dput。

https://spaces.hightail.com/space/arJlYkgIev

1 个答案:

答案 0 :(得分:0)

请尝试以下代码,该代码可以根据匹配条件为您提供来自文件的过滤行的数据框。

#to read your file
sec1 <- readLines("secondary1_aa_small.log")
#framing a dataframe by extracting required lines from above file
new_sec1 <- data.frame(grep("DF_API: input string", sec1, value = T))
names(new_sec1) <- c("V1")

编辑:将以上列拆分为多列的简单方法

#extracting substring in between < & >
new_sec1$V1 <- gsub(".*[<\t]([^>]+)[>].*", "\\1", new_sec1$V1)
#replacing comma(,) with a white space
new_sec1$V1 <- gsub("[,]+", " ", new_sec1$V1)
#splitting into separate columns
new_sec1 <-  strsplit(new_sec1$V1, " ")
new_sec1 <-  lapply(new_sec1, function(x) x[x != ""] )
new_sec1 <-  do.call(rbind, new_sec1)
new_sec1 <- data.frame(new_sec1)

更改要分析的列名。