Как игнорировать запятую в текстовом пункте при сохранении в формате.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.В этом случае вы можете свернуть векторы и отменить список каждой строки матрицы, чтобы их можно было выписать
Страница вопроса также содержит примеры кода.