【发布时间】:2018-06-10 00:50:24
【问题描述】:
我有一个完整的仿制药列表,用户输入以检查该药物是否存在于我的列表中(从 Medline 中获取)。该程序会检查这种药物是否存在于我的清单中。问题是我检查了药物的存在:
vast<-user_comp %in% medline_comps[1]
user_comp 是用户药物输入,medline_comps 是药物名称列表 这始终是正确的。
并且变量“vast”始终为真,因为例如 medline_comps 中存在“Phenylephrine”。问题是我没有更改代码中的任何内容并且突然开始返回 FALSE,我尝试重新启动 R,从工作区清除每个对象并且没有任何更改 %in% 开始返回 FALSE 而不是 TRUE。我仔细检查了列表中药物的存在,我什至复制粘贴了列表中的药物并将其放入用户输入中,并且在过去返回 TRUE 时仍然返回 FALSE。
当您没有更改代码中的任何内容时,R 会给您不同的结果是否有特殊原因?
我的清单的一个例子是:
medline_comps[1]
[[1]]
[1] "Phenylephrine" "Pyrethrin and Piperonyl Butoxide Topical"
[3] "Antipyrine-Benzocaine Otic" "Hydrocortisone
所以如果我输入 Phenylephrine,巨大的应该像以前一样定义为 TRUE,但现在只返回 FALSE,对此有什么合乎逻辑的解释吗?
【问题讨论】:
-
试试
user_comp %in% medline_comps[[1]](注意双括号)。 -
它返回 TRUE,所以我确实以某种方式更改了代码。这是我访问列表的方式,谢谢。