Может кто-нибудь помочь мне с проблемой синтаксиса символов? У меня есть столбец данных со списком чисел (в виде символов):
df$issn
[1] "2369-2960" "1532-2777" "1876-2026" "1872-7727" "1872-7123"
[6] "1532-2777" "1542-7714" "1879-1190" "1090-2139" "1090-2139"
Мне нужно преобразовать их в специальный синтаксис c, чтобы они работали в функции из пакета RISmed. Я не думаю, что вам нужно беспокоиться о деталях пакета. Если я могу просто найти поиск в нужном формате, все должно работать.
Вот вывод, где я вручную вставляю числа в правильном формате:
> EUtilsSummary('2369-2960 OR 1532-2777 OR 1876-2026 OR 1872-7727',
+ retmax=100, mindate= 2018, maxdate= 2021, datetype = "edat")
[1] "\"JMIR Public Health Surveill\"[Journal] OR \"Med Hypotheses\"[Journal] OR \"Asian J Psychiatr\"[Journal] OR \"Eur J Radiol\"[Journal] AND 2018[EDAT] : 2021[EDAT]"
>
Таким образом, вы можете видеть, что мне нужен поиск «число ИЛИ число ИЛИ число». Я написал функцию вставки, чтобы это произошло, и похоже, что она работает нормально:
> issns <- paste0("\'", paste0(unique(df$issn), collapse = " OR "), "\'")
> issns
[1] "'2369-2960 OR 1532-2777 OR 1876-2026 OR 1872-7727 OR 1872-7123 OR 1542-7714 OR 1879-1190 OR 1090-2139 OR 1873-6513...
Это как 800 из этих чисел, поэтому я обрезал их там. В любом случае, когда я запускаю свою функцию с переменной issns, я получаю сообщение об ошибке:
> EUtilsSummary(issns,
+ retmax=100, mindate= 2018, maxdate= 2021, datetype = "edat")
Error in file(con, "r") :
cannot open the connection to 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term='2369-2960+OR+1532-2777+OR+1876-2026+OR+1872-7727+OR+1872-7123+OR+1542-7714+OR+1879-1190+OR+1090-2139+OR+1873-6513+OR+1523-6838+OR+1532-2742+OR+1474-4457+OR+1555
Почему это происходит? Теоретически:
- Вставка моей переменной issns должна быть такой же, как просто вывод их, верно?
- Есть ли какая-то функция синтаксиса / кодирования, которую мне не хватает? Перепробовал кучу вещей без пользы.