Я пытаюсь прочитать файл csv, в котором есть кавычки.
id, value, other
1, "("a" = "b", "b" = "c", "c" = "d")", 2
2, "("a" = "b", "b" = "c", "c" = "d")", 3
read.csv удаляет кавычки, поэтому я получаю
id, value, other
1, (a=b, b=c, c=d), 2
2, (a=b, b=c, c=d), 3
Кто-нибудь понял, как я могу сохранить кавычки?
Одним из способов будет замена разделителей.
Мы можем изменить разделитель на что-то другое, и использование fread
работает.
data.table::fread(gsub(',(?![^\\(]*\\))', ';', text, perl = TRUE), quote = '')
# id value other
#1: 1 "("a" = "b", "b" = "c", "c" = "d")" 2
#2: 2 "("a" = "b", "b" = "c", "c" = "d")" 3
регулярное выражение для gsub
было взято из здесь, чтобы заменить те запятые, которые не встречаются между ()
.
данные
text = 'id, value, other
1, "("a" = "b", "b" = "c", "c" = "d")", 2
2, "("a" = "b", "b" = "c", "c" = "d")", 3'
может это поможет:
library(readr)
# simulating your data
id <- c(1,2)
value <- c('"("a" = "b", "b" = "c", "c" = "d")"', '"("a" = "b", "b" = "c", "c" = "d")"')
other <- c(2,3)
# creating a dataframe
df <- data.frame(id, value, other)
# creating a csv file
write.csv(df,"mydata.csv", row.names = FALSE)
# Import csv dataset
mydata <- read_csv("mydata.csv")
# View data
View(mydata)