【问题标题】:Extract specific lines and make a list of those in R提取特定行并列出 R 中的行
【发布时间】:2019-06-17 07:46:22
【问题描述】:

我有一个文件,我想从中提取 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 中的样本数据

【问题讨论】:

  • 能否包含txt的样本数据?
  • @nate 我刚刚加了个txt截图
  • 我担心屏幕截图的帮助有限,因为我们无法简单地通过屏幕截图进行复制。实际样本数据(例如使用dput(txt))更有用。

标签: r file-read


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多