Проверка имен файлов при загрузке в R Shiny

#r #validation #file-upload #shiny #filenames

Вопрос:

Добрый день. Я хочу проверить в R shiny после загрузки 2 файлов, идентична ли одна часть имени файла или нет. Я сделал это

 data <- reactive({
    inFile=input$bam
    #str(inFile)
    clean_file_1=str_extract_all(inFile, regex("[0-9]{3}[:punct:][0-9]{5}[:punct:][A-Z]{3}[0-9]{8}"))[[1]]
    clean_file_2=str_extract_all(inFile, regex("[0-9]{3}[:punct:][0-9]{5}[:punct:][A-Z]{3}[0-9]{8}"))[[2]]
    #a = clean_file_1 == clean_file_2
    
    if (clean_file_1 == clean_file_2){
      return(inFile)
    } else {
      print("Error message by Adam")
    }
    #validate(need(clean_file_1 == clean_file_2, print("Please upload the same Dna number pool1 pool2"))
    
    
    
  })
 

Регулярное выражение и сравнение верны, когда я выписывался из shiny.
Сообщение об ошибке в Shiny выглядит следующим образом

 Warning: Error in if: the argument is of length zero
 

Когда я пытаюсь проверить, не принимает символ сравнения

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

Комментарии:

1. Ваш код не воспроизводим, но я могу себе представить, что ошибка возникает при запуске приложения, потому что вы ничего не загрузили, кроме того, что запускается реактив и input$bam имеет значение NULL, и это то, что происходит, когда вы используете значение NULL if . Возможно, вы захотите добавить в req(input$bam) качестве первой строки в свой ответ.

2. Спасибо вам за ваш ответ. Проблема возникает, когда я загружаю 2 файла. Я выполняю поиск и добавил значение isTrue(value1==value2) в оператор if. Нет ошибки….. но все равно не читайте эти два файла. Когда я также проверил ifelse(isTrue(clean_file_1 == clean_file_2), печать(«нет»), файл), тогда, если возвращает файл, отображается имя файла только одного из двух файлов

3. Можете ли вы предоставить ui и server код, необходимый для того, чтобы вопрос был полностью воспроизводимым, вместе с необходимыми данными, если потребуется?

4. Добрый день, сэр, и спасибо вам за ответ. К сожалению, дополнительная информация-это конфиденциальные данные. Но я перепробовал много альтернатив. Дело в том, что я проверил вывод. Когда я печатаю вывод данных (), возвращает имена файлов. Когда я использую эти имена файлов из data() в качестве входных данных для других функций, возвращается значение NULL. возможно, мне следует изменить форму. Странная вещь для меня заключается в том, что когда я пытаюсь выйти из Блестящего, все работает идеально, но когда я вставляю в Блестящее приложение, представляющее эту ошибку….