首页 > 解决方案 > 提取特定行并列出 R 中的行

问题描述

我有一个文件,我想从中提取segsites:之后的数字, 并用 bin 制作直方图。我编写了一些代码来检查一行是否以单词“segsites”开头,然后提取该行并将其放入数据框中。

然而,它并没有做它应该做的事情。它提取了一些数字,但它们与我在文件中的值不对应。我附上了一个屏幕截图来显示文件的样子。这是一个示例,而不是实际文件。

library(dplyr)
library(ggplot2)

 txt <- readLines("file.msOut")

 lns <- (data.frame((beg=which(grepl("segsites:",txt)))))

  output <- cut(lns, breaks = seq(0,1000, by= 100), labels = c("<100","100-200","200-300","300-400","400-500",
                                                         "600-700","700-800,800-900","900-100"))

table(output) %>% 
  as.data.frame() %>% 
  ggplot(aes(x = output, y = Freq)) + 
  geom_col()

在此处输入图像描述

来自txt的样本数据

在此处输入图像描述

标签: rfile-read

解决方案


使用regex并假设txt包含来自图像的数据

txt <- c('segsites: 10','test')
as.numeric(gsub('\\D', '', grep('segsites\\:', txt, value = TRUE), perl = TRUE))
# [1] 10

推荐阅读