Как игнорировать запятую в текстовом пункте при сохранении в формате.csv?

Я пытаюсь извлечь данные из NCBI, используя различные функции в rentrez пакет. Тем не менее, у меня есть проблема, потому что функция extract_from_esummary() в renrez приводит к матрице, где текст столбца разделяется на соседние столбцы при сохранении в файле.csv (как показано на рисунке) из-за "," распознается как разделитель.

  library (rentrez)
  PM.ID <- c("25979833", "25667274","23792568","22435913")

p.data <- entrez_summary(db = "pubmed", id = PM.ID  )
pubrecord.table <- extract_from_esummary(esummaries = p.data ,
                                         elements = c("uid","title","fulljournalname",
                                                      "pubtype"))

Из приведенного выше примера изображения в столбце PMID: 25979833 имя журнала разделено, чтобы перейти в следующий столбец. European journal of cancer (Oxfordв столбцах 1, а затем England : 1990) в следующем столбце. Когда я сделал dput(pubrecord.table), я понял, что разделение происходит потому, что слова разделяются запятой ",". Как я могу заставить R понять, чтоEuropean journal of cancer (Oxford, England : 1990) принадлежит к тому же столбцу? Аналогичная проблема с полями Title и Pubtype...., когда длинный текст имеет запятую между, а R разбивает его в формате csv. Как я могу очистить данные, чтобы данные были в соответствующем столбце?

1 ответ

Я думал, что это было похоже на ошибку в extract_from_esummary, Я искал проблемы пакета на Github для "запятой" и получил это, которое говорит:

Это на самом деле не проблема для Rentrez, а просто свойство записей NCBI и R объектов.

В этом случае поле pubtype имеет переменный размер.

Когда вы пытаетесь написать матрицу, она представляет векторы, как вы их набираете (c(..., ...)), который добавляет запятую, которая нарушает формат CSV.

В этом случае вы можете свернуть векторы и отменить список каждой строки матрицы, чтобы их можно было выписать

Страница вопроса также содержит примеры кода.

Другие вопросы по тегам