из первого файла данные соответствуют индексу второго файла и получают его до и после данных в R - PullRequest
0 голосов
/ 05 июня 2018

У меня есть два файла. Сведения о первом файле:

1 433
2 456
3 678
4 781

Как и 10 ^ 3 строки во втором файле

1 A
2 G
3 T
4 C
5 D
432 T
433 G
434 C

Аналогично 10 ^ 7 строк, которые я должен соответствоватьпервый файл данных со вторым файлом, а затем получить детали до и после строк.например, из первого файла против 433 подробного результата

432 T 433 G 434 C

А позже я хочу получить позиции только TGC и TGA с начальной и конечной позициями, которые я пытался использовать для цикла, но на такихбольшой цикл не будет работать.

1 Ответ

0 голосов
/ 05 июня 2018

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

fun <- function(i, x){
  res <- NULL
  x <- as.character(x)
  if(length(x) > 0) {
      if(i == 1)
        res <- x[seq_along(x)[1:2]]
      else
        if(i == length(x))
          res <- x[rev(seq_along(x))[2:1]]
        else
          res <- x[(i - 1):(i + 1)]
  }
  res
}

inx <- which(dat2[[1]] %in% dat1[[2]])
lapply(inx, fun, dat2[[2]])
#[[1]]
#[1] "T" "G" "C"

Данные.

dat1 <- read.table(text = "
1 433
2 456
3 678
4 781                   
")

dat2 <- read.table(text = "
1 A
2 G
3 T
4 C
5 D
432 T
433 G
434 C
")
...