Я извиняюсь, если этот вопрос был задан с терминологией, которую я не узнаю, но, похоже, это не так.
Я использую функцию comm2sci
в библиотеке taxize
для поиска научных названий в базе данных, содержащей более 120 000 строк общеупотребительных имен. Вот подмножество из 10:
commnames <- c("WESTERN CAPERCAILLIE", "AARDVARK", "AARDWOLF", "ABACO ISLAND BOA",
"ABBOTT'S DAY GECKO", "ABDIM'S STORK", "ABRONIA GRAMINEA", "ABYSSINIAN BLUE
WINGED GOOSE",
"ABYSSINIAN CAT", "ABYSSINIAN GROUND HORNBILL")
При поиске в базе данных NCBI в этой функции она запрашивает ввод пользователем, является ли общее название родовым/общим, а не специфичным для вида, например, следующий вызов потребует уточнения для «AARDVARK», введя «1», «2» или «возврат» для «NA».
install.packages("taxize")
library(taxize)
ncbioutput <- comm2sci(commnames, db = "ncbi")###querying ncbi database
Из-за этого я не могу полагаться на эту функцию, чтобы найти названия 120000 видов без того, чтобы сидеть и вводить «возврат» каждые несколько минут. Я знаю, что этот вопрос звучит taxize
специфично, но в прошлом у меня была такая ситуация и с другими функциями. Мой вопрос: есть ли общий способ поместить вызов comm2sci
в условный оператор, который будет возвращать определенное значение при запросе пользовательского ввода? Или иначе напишите функцию, которая будет возвращать некоторый ввод при появлении запроса?
Все поиски, связанные с этим, говорят мне, как запрашивать ввод пользователя, но не как переопределять пользовательские запросы. Это два потока вопросов, которые я нашел, но я не могу применить их к моей ситуации: Заставить R ждать ввода с консоли?, Переключить скрипт R с неинтерактивного на интерактивный
Надеюсь, это было понятно. Спасибо вам большое за ваше время!
1
или2
только тогда, когда было более одного UID для таксонаAARDVARK
— это то, что вы хотите автоматизировать?? - person Evan Friedland   schedule 21.07.2017?comm2sci
, которое может привести к простому решению. - person Evan Friedland   schedule 21.07.2017