Язык R: заменить текст своей измененной версией - PullRequest
0 голосов
/ 10 января 2020

У меня есть CSV-файл с табуляцией разделителя (символ \ t). И мне нужно преобразовать его в CSV с запятой (,). Но простая замена не будет работать, потому что мой текст может содержать запятую, которая нарушит форматирование файла. Чтобы избежать этого, мне нужно поместить такой текст с запятой в кавычки (") и только затем заменить все символы табуляции на запятую (,).

Каждый столбец захвачен между двумя символами: Начало файла , Конец файла , \ t и \ n .

Что мне нужно, так это: если столбец содержит запятую (,), замените его тем же текстом, но также добавьте дополнительные кавычки. Пример:

My text, ABC\tYour pans are gray\tGood weather\n
blue flowers\tTemp, hot toaster\tOh my Sun\n

Таким образом, после замены текст будет выглядеть как

"My text, ABC"\tYour pans are gray\tGood weather\n
blue flowers\t"Temp, hot toaster"\tOh my Sun\n

\ t в символе TAB

1 Ответ

1 голос
/ 10 января 2020

Я думаю, тебе не нужно этого делать. Если вы прочитаете файл как разделенный табуляцией и запишите его как разделенный запятыми, он автоматически обработает это. Попробуйте,

df <- read.table(text = text, sep = "\t")
write.csv(df, 'temp.csv', row.names = FALSE)

data

text <- "My text, ABC\tYour pans are gray\tGood weather\n
         blue flowers\tTemp, hot toaster\tOh my Sun\n"
...