ne,class,regex,match,event,msg
BOU2-P-2,"tengigabitethernet","tengigabitethernet(?'connector'\d{1,2}\/\d{1,2})","4/2","lineproto-5-updown","%lineproto-5-updown: line protocol on interface tengigabitethernet4/2, changed state to down"
это первые две строки, первая из которых будет служить именами столбцов, все разделены запятыми и со значениями в кавычках, кроме первой, и я думаю, что это создает проблемы.
Меня интересует класс столбцов и сообщение, поэтому этого вывода будет достаточно:
class msg
tengigabitethernet %lineproto-5-updown: line protocol on interface tengigabitethernet4/2, changed state to down
но я также могу импортировать все столбцы и отменить выбор тех, которые мне не нужны, позже, не беспокойтесь.
Данные поступают в файл .csv, который мне дали. Если я открою этот файл в Excel, все столбцы будут в одном. Я работаю во Франции, но я не знаю, в какой локали или кодировке был создан файл (кстати, я не француз, поэтому я не очень знаком с ними).
я пробовал с
df <- read.csv("file.csv", stringsAsFactors = FALSE)
и в кадре данных имена столбцов красиво разделены, но все значения находятся в первом
затем с
library(readr)
df <- read_delim('file.csv',
delim = ",",
quote = "",
escape_double = FALSE,
escape_backslash = TRUE)
но таким образом столбец регулярного выражения разбивается на два столбца, поэтому я полностью теряю переменную msg.
С
library(data.table)
df <- fread("file.csv")
Я получаю переменную msg, но пустую, так как переменная ne содержит и ne, и класс, разделенные запятой. это лучший результат на данный момент, так как я могу манипулировать им, чтобы получить желаемый результат.
другой вариант - загрузить файл как вектор символов с помощью readLines, чтобы исправить это, но я не эксперт по регулярным выражениям, поэтому я был бы не в курсе. файл также состоит из 300 тысяч строк, поэтому его будет сложно проверить.
и read.delim, и fread дают предупреждающие сообщения, я могу включить их, если они могут быть полезны.
Обновить:
с использованием
library(data.table)
df <- fread("file.csv", quote = "")
дает мне более легкий вывод для управления, он разбивает столбец regex и msg на две части, но ne и класс различны