Подсчет времени появления слова в строке в последующих строках в r - PullRequest
1 голос
/ 17 октября 2019

Я пытаюсь разработать конкретный скрипт подсчета строк. Есть один шаг, который я не могу решить. У меня есть несколько файлов (таблиц с разделителями табуляции), каждый файл содержит фрейм данных с более чем 1000 строк в каждом. Я пытаюсь подсчитать, сколько раз определенная строка в строке появляется в другой строке как часть строки этой строки. Вот что у меня так далеко. Это дает список каждого имени файла, сколько раз строка появляется в строке отдельно или внутри другой строки. Я могу разработать концепцию, но сейчас мне приходится искать строку вручную, что нецелесообразно при работе с тысячами строк различной длины. Как видите, скрипт перебирает каждый файл в папке. Результат должен только генерировать список тех строк, которые появляются в других строках, и количество раз, которое это делает на файл. Кроме того, файлы не обязательно имеют одинаковый список строк, поэтому каждый файл следует проверять отдельно.

Вот простой пример фрейма данных. north.txt

1.  abcd
2.  bdcd
3.  tabcdt
4.  bdcad

Я смог заставить скрипт проверять каждое слово, но мне пришлось вводить слово вручную.

 library(stringr)
 library(tidyverse)

 # Read all .txt files in folder.
 files <- list.files(path="/Data/Processed_data/docs_by_name",  pattern=".txt")
 ###Action on each file
 # Select the column with the  sequences-clones
 for (i in files){
   print(i)
   data <- read.table(file =paste0( "/Data/Processed_data/samples_by_name/", i), sep = '\t', header = TRUE)
 # Compare selected string with strings of other rows and count matches
 # Select file
    for (t in unique(data)){
       word <- deframe(data)
       number.word <- str_count(word, “abcd”)
       repeats <- sum(number.word)-1
       print(repeats)
     }
  }

Вот пример того, чтоЯ надеюсь получить.

north.txt
abcd
2
bdca
1       

south.txt
abcd…
...