Как использовать разделитель как "", "" - PullRequest
1 голос
/ 05 марта 2019

У меня проблема.Мне нужно импортировать данные в R, но разделитель ",".

Не просто запятая, а запятая, окруженная двумя кавычками.Но если я поставлю его в качестве разделителя, у меня есть команда:

"DownloadFormat"="","".

И г не понимает.Как я могу защитить этот разделитель?

Ответы [ 2 ]

1 голос
/ 05 марта 2019

1) readLines / gsub Вопросы к SO на R должны включать полный проверяемый пример.Без этого мы предоставляем свое в примечании в конце.Код может потребоваться изменить в зависимости от фактических данных.Сначала прочитайте данные построчно, используя readLines и удалите все двойные кавычки.Затем перечитайте его, используя read.csv.

L <- gsub('"', '', readLines("hugo.dat"))
DF <- read.csv(text = L)
DF

подача:

   a  b  c  d
1  1  2  3  4
2 13 14 15 16

2) труба / сед Другая возможность - однострочная:

read.csv(pipe("sed -e 's/\"//g' hugo.dat"))

В Windowsубедитесь, что у вас установлен Rtools и что C: \ Rtools \ bin находится в вашей переменной Windows PATH (при условии, что каталог установки Rtools по умолчанию).Хотя это работало для меня как на Windows, так и на Linux с использованием bash, вам может потребоваться слегка изменить его в зависимости от того, какую оболочку вы используете, из-за различий в том, как разные оболочки обрабатывают экранирование и цитирование.

Примечание

Lines <- 'a","b","c","d
1","2","3","4
13","14","15","16'
cat(Lines, "\n", file = "hugo.dat")
0 голосов
/ 05 марта 2019

Используя @G.Grothendieck's пример hugo.dat файл, мы можем добавить пропущенные кавычки и читать как CSV:

read.csv(textConnection(paste0('"', readLines("hugo.dat"), '"')))

#    a  b  c  d
# 1  1  2  3  4
# 2 13 14 15 16
...