Ваше второе представление - это обычный способ создания файла CSV, поэтому с ним должно быть легко работать в любом программном обеспечении.См. Спецификации RFC 4180.https://www.ietf.org/rfc/rfc4180.txt
Таким образом, ваш второй пример представляет эти данные:
Obs id name value
1 1 Blah 100
2 2 Has space 200
3 3 Ends with quotes" 300
4 4 "Surrounded with quotes" 300
Если вы хотите представить его как файл с разделителями, где ни одно из значений не может содержать разделитель (в другихслова НЕ как стандартный файл CSV), чем это выглядело бы:
id,name,value
1,Blah,100
2,Has space,200
3,Ends with quotes",300
4,"Surrounded with quotes",300
Но если вы хотите, чтобы значения содержали разделитель, вам нужен какой-то способ отличить встроенные разделители от реальных разделителей.Таким образом, стандартные значения, которые содержат разделитель, должны быть заключены в кавычки.Но как только вы это сделаете, вам также необходимо добавить кавычки вокруг полей, которые содержат сам символ кавычки (и удвоить вложенные кавычки), чтобы избежать создания неоднозначного файла.Например, кавычки в 4-м наблюдении в вашем первом файле выглядят так, как будто они являются необязательными кавычками вокруг значения, а не части значения.
Многие программы пытаются справиться с неоднозначными ситуациями.Например, SAS не позволяет значениям содержать встроенные разрывы строк, поэтому вы всегда получите четыре наблюдения с вашим первым файлом примера.
Но EXCEL позволяет встраивать символы конца строки в кавычки.Таким образом, в вашем исходном файле значение второго поля в третьем наблюдении выглядит так, как если бы вы добавили кавычки вокруг этого значения:
Ends with quotes",300
4,"Surrounded with quotes",300
Таким образом, вместо 4 полных наблюдений значений трех полейв каждом из них только три наблюдения, а последнее наблюдение имеет только два значения поля.