Jak wyodrębnić wszystkie fragmenty kodu z pliku Rnw Sweave?

Otrzymałem plik .Rnw, który daje błędy podczas próby zbudowania pakietu, do którego należy. Problem polega na tym, że podczas sprawdzania pakietu za pomocą narzędzi w RStudio nie otrzymuję żadnych przydatnych informacji o błędach. Muszę więc najpierw dowiedzieć się, w którym wierszu kodu występuje błąd.

Aby to rozgryźć, napisałem ten pięciominutowy hack, aby pobrać wszystkie kawałki kodu w oddzielnym pliku. Mam przeczucie, że czegoś brakuje. Jaki jest czysty sposób wyodrębniania całego kodu w pliku Rnw, tak jak uruchamiasz plik skryptu? Czy istnieje funkcja do wyodrębnienia wszystkich lub uruchomienia wszystkich w taki sposób, aby dowiedzieć się, w której linii występuje błąd?

Mój hack:

ExtractChunks <- function(file.in,file.out,...){
  isRnw <- grepl(".Rnw$",file.in)
  if(!isRnw) stop("file.in should be an Rnw file")

  thelines <- readLines(file.in)

  startid <- grep("^[^%].+>>=$",thelines)
  nocode <- grep("^<<",thelines[startid+1]) # when using labels.
  codestart <- startid[-nocode]

  out <- sapply(codestart,function(i){
    tmp <- thelines[-seq_len(i)]
    endid <- grep("^@",tmp)[1]  # take into account trailing spaces / comments
    c("# Chunk",tmp[seq_len(endid-1)])
  })

  writeLines(unlist(out),file.out)

}

questionAnswers(1)

yourAnswerToTheQuestion