Извлеките определенные строки и составьте список из них в R - PullRequest
0 голосов
/ 23 января 2019

У меня есть файл, из которого я хочу извлечь число после сегментов: и создать гистограмму с ячейками. Я написал некоторый код, который проверяет, начинается ли строка со слова «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()

enter image description here

Пример данных из txt

enter image description here

1 Ответ

0 голосов
/ 23 января 2019

Использование regex и предположим, что txt содержит данные из изображения

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