Прочитать данные, разделенные двумя двоеточиями в R

Я пытаюсь прочитать данные, разделенные:: (два двоеточия) в R. Когда я использую sep = "::" с функцией read.table я получаю сообщение об ошибке: "Значение sep должно быть одним байтом". Мне интересно, могу ли я прочитать эти данные в R. У меня не было проблем с чтением этих данных в Python.

Сейчас я использую sep=":" и затем получите NA в столбцах, которые были другими ":". Поэтому я удаляю столбцы NA. Есть ли способ читать данные напрямую, указав sep = "::" в R?

1 ответ

Решение

Допустим, у нас есть:

A::B::C
23::34::56
12::56::87
90::43::74

в текстовом файле. Тогда мы можем сделать:

lines <- readLines("doublesep.txt")
> lines
[1] "A::B::C"    "23::34::56" "12::56::87" "90::43::74"

lines <- gsub("::", ",", lines)
> lines
[1] "A,B,C"    "23,34,56" "12,56,87" "90,43,74"

Теперь вы можете записать в файл или преобразовать в data.frame объект:

> read.table(text=lines, sep=",", header=T)
   A  B  C
1 23 34 56
2 12 56 87
3 90 43 74

> writeLines(lines, "doubletosingle.csv")
Другие вопросы по тегам