Чтение данных с различной длиной столбца и пробелами в R - PullRequest
0 голосов
/ 28 марта 2020

У меня есть данные, которые выглядят примерно так:

category 2011 2012 2013 2104
word word word 15,000.11 1,000.15 13,001.50 20,000,001.52
word 2,000.120 400,000.00 57,000.523 402,000,111
word word 4,000.120 455,000.02 57,600.87 403,000,111.18
word 2,056.120 678,000.00 670,000.523 402,009,111.65

Это файл .csv. Я хочу прочитать его, чтобы он разделялся на столбцы, но они все разной длины, поэтому я не уверен, как это сделать. Я знаю, что могу разделять пробелами, но некоторые слова в первом столбце имеют пробелы между ними.

category         2011      2012         2013         2104
word word word  15,000.11  1,000.15    13,001.50    20,000,001.52
word            2,000.120  400,000.00  57,000.523   402,000,111
word word       4,000.120  455,000.02  57,600.87    403,000,111.18
word            2,056.120  678,000.00  670,000.523  402,009,111.65

Прошу прощения, если я не правильно спрашиваю об этом. Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 28 марта 2020

Мы можем сделать разделитель с sub после считывания набора данных с readLines

lines[-1] <- sub("^([A-Za-z ]+)(?=\\s[0-9])", "'\\1'", lines[-1], perl = TRUE)
read.table(textConnection(lines), header = TRUE, check.names = FALSE)
#      category      2011       2012        2013           2104
#1 word word word 15,000.11   1,000.15   13,001.50  20,000,001.52
#2           word 2,000.120 400,000.00  57,000.523    402,000,111
#3      word word 4,000.120 455,000.02   57,600.87 403,000,111.18
#4           word 2,056.120 678,000.00 670,000.523 402,009,111.65

data

lines <- readLines('file.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...