Вы можете прочитать его как таблицу, как есть, затем разделить столбец и рекомбинировать.
txt <- "| col1 | col2 | col3 col4 col5 |
| 1 | 2:24:21 PM 3/22/2012 | 0 0 1 |
| 2 | 2:24:21 PM 3/22/2012 | 1 · 0 |"
x <- read.table(text = txt, sep = "|", header = TRUE, stringsAsFactors = FALSE)
## drop unnecessary columns from the original sep split
x <- x[,-c(1,ncol(x))]
## split the desired column by the spaces, result is a character matrix
## including an unnecessary first column
split.col3 <- do.call("rbind", strsplit(x[,3], " "))
## bind to the original, dropping the unneeded columns
cbind(x[,-3], split.col3[,-1])
col1 col2 1 2 3
1 1 2:24:21 PM 3/22/2012 0 0 1
2 2 2:24:21 PM 3/22/2012 1 · 0
Я избегал ссылаться на исходные имена столбцов, так как вы сказали, что хотите пропустить эти строки.Просто добавьте header = FALSE
и skip = 50
к вызову read.table
, а затем добавьте любые имена столбцов, которые имеют смысл впоследствии.
Кроме того, вы можете лишить "."из колонок, где это необходимо, конвертируйте в форматы даты и времени или числа, как требуется.Используйте colClasses
в read.table, если вы знаете их заранее.Для меня имеет смысл разбить это на несколько шагов, а не пытаться делать все это с помощью одной функции чтения.