我有此日志文件,一行上最多有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。
答案 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)
更改要分析的列名。