Scopus_ReadCSV {CITAN} не работает с CSV-файлом, экспортированным из Scopus
Я использую Rstudio с R 3.3.1 на Windows 7, и я установил CITAN
пакет. Я пытаюсь импортировать библиографические записи из файла CSV, который я экспортировал из Scopus (как нетронутый), выбирая для экспорта всю доступную информацию.
Это ошибка, которую я получаю:
example <- Scopus_ReadCSV("scopus.csv")
Ошибка в Scopus_ReadCSV("scopus.csv"): столбец не найден: `Источник '. Дополнительно: Предупреждающие сообщения:
1: В файле read.table(file = file, header = header, sep = sep, quote = quote,: в входном соединении 'scopus.csv' найден неверный ввод)
2: В read.table(file = file, header = header, sep = sep, quote = quote,: неполная последняя строка, найденная readTableHeader в scopus.csv
Когда я открываю файл, появляется столбец "Источник", поэтому я не знаю, почему он говорит "не найден".
2 ответа
В конце концов я пришел к следующим выводам:
Кодировкой CSV-файла, экспортируемого из Scopus, была UTF-8-BOM, которая, кажется, не распознается из R при использовании Scopus_readCSV("file.csv") или read.table("file.csv", header = TRUE, sep = ",", fileEncoding = "UTF-8").
Хотя для файла из Scopus используется тип кодировки, можно найти некоторые "странные" неанглийские символы, которые нельзя прочитать из функции чтения в R. (В основном эта проблема встречается в именах со специальными символами)
Решения для этих проблем:
Откройте файл CSV с помощью приложения "Блокнот", такого как Notepad++, и сохраните файл с кодировкой UTF-8, чтобы его можно было прочитать для R как UTF-8.
При запуске функции чтения в R вы заметите, что она перестает читать (например, в 40-м из 200 реестров). Посмотрите, где именно он остановился, и таким образом вы можете найти специальный символ, открыв CSV с помощью блокнота, а затем вы можете стереть / изменить его по своему желанию, чтобы снова не возникла та же проблема в R.
Другое решение, которое сработало для меня:
Откройте файл в Google Таблицах, затем снова скачайте его оттуда в виде файла *.csv. После этого R открывает его правильно.