% in% внезапно перестал логически отвечать - PullRequest
0 голосов
/ 10 июня 2018

У меня есть полный список непатентованных лекарств, и пользователь вводит данные, чтобы проверить, существует ли этот препарат в моем списке (соскоблено с Medline).Программа проверяет, есть ли этот препарат в моем списке.Дело в том, что я проверил наличие препарата с помощью:

vast<-user_comp %in% medline_comps[1]

user_comp - ввод лекарств пользователя и medline_comps - список лекарств, который всегда был верным.

И переменная «обширный» всегда была истинной, потому что, например, «фенилэфрин» существует в medline_comps.Дело в том, что я ничего не изменил в коде и неожиданно огромный начал возвращать FALSE, я попытался перезагрузить R, очистить каждый объект из рабочей области и без каких-либо изменений %in% начал возвращать FALSE вместо TRUE.Я дважды проверил наличие препарата в списке, я даже скопировал, вставил препарат в список и поместил его в пользовательский ввод, и все еще возвращает FALSE, когда в прошлом возвращало TRUE.

Есть лиособая причина, по которой R может дать вам разные результаты, если вы ничего не изменили в коде?

Пример моего списка:

medline_comps[1]

[[1]]
[1] "Phenylephrine"               "Pyrethrin and Piperonyl Butoxide Topical"              
[3] "Antipyrine-Benzocaine Otic"  "Hydrocortisone  

Так что, если я ввожу фенилэфрин, обязательно должно бытьИСТИНА, как это было раньше, но теперь возвращает только ЛОЖЬ, есть ли логическое объяснение этому?

1 Ответ

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

Попробуйте user_comp %in% medline_comps[[1]] (обратите внимание на двойные скобки).

Ваш вывод показывает, что здесь происходит:

medline_comps[1]
# [[1]] 
# [1] "Phenylephrine" "Pyrethrin and Piperonyl Butoxide Topical" 
# [3] "Antipyrine-Benzocaine Otic" "Hydrocortisone

Одиночная скобка возвращает список, тогда как вы хотели проверитьналичие элемента в векторе, содержащемся в списке, в этом случае вы должны использовать двойные скобки.См., Например, Разница между нотациями [] и [[]] для доступа к элементам списка или фрейма данных .

...