Генерация имен файлов PDF и TXT автоматически - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь запустить цикл for для функции и графика.У меня есть разные векторы (черты), я бегу от данных.Я хочу выполнить каждую черту через цикл for, называемый i, и вывести каждый результат в отдельный файл с соответствующим именем черты, поэтому мне нужно всего лишь один раз выполнить команду вместо 9 раз.Файл должен называться («bristleX trait 1.txt», «bristleX trait 2.txt», ..., «bristleX trait i.txt»). То же самое относится и к команде .pdf.("bristleX trait 1.pdf", "bristleX trait 2.pdf", ..., "bristleX trait i.pdf") У меня проблемы с функциями приемника и pdf;они не будут выводить то же самое, что и обычные заголовки или имена с помощью функции paste ().Функциям, использующим черты i в признаках, нужны только цифры от 1 до 9, но они могут выполнять только по одной за раз.

  library(qtl)
  data("bristleX")
    traits<-c(1:9)
    for(i in traits){
      sink(paste(file="bristleX trait",i".txt"))
      pdf(paste(file = "brixtleX trait",i".pdf", paper="special",width = 8.5, 
      height = 11, 
          family="Times", pointsize=11,bg="white",fg="black"))
      print("MR QTLs")

      out.mr <- scanone(bristleX, pheno.col=i, method="mr") # estimate LOD 
      #for a single phenotype
      summary(out.mr, threshold=3)
      plot(out.mr) # 

     sink()
     dev.off()
    }

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

у вас есть ошибка в вашей прошлой функции, вы показываете, что используете

paste("bristleXtrait",i,".txt")

вместо

paste("bristleXtrait",i".txt")

Кроме того, вы должны заменить пробелы в имени файла.Вы можете использовать функцию str_replace_all()

sink(file = str_replace_all(paste("bristleX trait",i,".txt"), pattern=" ", repl=""))
0 голосов
/ 29 мая 2018

Я не пробовал ваш пример, но, как я вижу, у вас есть ошибка здесь:

...
      sink(paste(file="bristleX trait",i".txt"))
      pdf(paste(file = "brixtleX trait",i".pdf", paper="special",width = 8.5, 
...

У вставки нет аргумента файла.Вы, вероятно, хотели:

...
      sink(file=paste("bristleX trait",i".txt"))
      pdf(file = paste("brixtleX trait",i".pdf", paper="special",width = 8.5, 
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...