Эй так что я Тиббл с головой() распечатанный так:Как отделить данные с помощью 5 разделителей вопросительных знаков с помощью отдельных()?
# A tibble: 6 × 1
id.make.model.year
<chr>
1 27550?????AM General?????DJ Po Vehicle 2WD?????1984
2 28426?????AM General?????DJ Po Vehicle 2WD?????1984
3 27549?????AM General?????FJ8c Post Office?????1984
4 28425?????AM General?????FJ8c Post Office?????1984
5 1032?????AM General?????Post Office DJ5 2WD?????1985
6 1033?????AM General?????Post Office DJ8 2WD?????1985
только с одной колонкой. Я хочу разделить это на четыре столбца с этими четырьмя именами столбцов. Я пытался использовать separate()
A %>%
separate(id.make.model.year,into=c("id","make"),sep="?????")
и
A %>%
separate(id.make.model.year,into=c("id","make"),sep="\\?????")
, но они оба возвращают следующее сообщение об ошибке:
Error in stringi::stri_split_regex(value, sep, n_max) : Syntax error in regexp pattern. (U_REGEX_RULE_SYNTAX)
Еще один попробовать ...:
A %>%
separate(id.make.model.year,into=c("id","make"),sep="[?????]")
который возвращает
# A tibble: 33,439 × 2
id make
* <chr> <chr>
1 27550
2 28426
3 27549
4 28425
5 1032
6 1033
7 3347
8 13309
9 13310
10 13311
# ... with 33,429 more rows
Warning message:
Too many values at 33439 locations: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...
Я также попытался сбрасывать сеп, но все пробелы явно считаются разделителями.
Каков правильный способ сделать это? Заранее спасибо.
Пожалуйста, добавьте вывод 'dput (head (df))' в свой вопрос, чтобы сделать это [воспроизводимым примером] (https://stackoverflow.com/questions/5963269/how-to-make-a- большой-р-воспроизводимый-пример). Во всяком случае, это просто звучит как простой вопрос с регулярным выражением. – smci
Регулярное выражение соответствует одному знаку вопроса ''? 'Или' [?] '. Однако, если у вас их пять, '[?????]' все еще один соответствует одному вхождению этого символа, так же как '[aaaaa]' будет соответствовать только одной букве 'a', а не пяти. Поэтому я думаю, что вы хотите '\? {5}' или '[?] {5}' (или '\? \? \? \? \?' Или '[?] [?] [?] [?] [ ?] '). Пока вы не отправляете данные с помощью 'dput()' я не могу подтвердить. – smci
Кстати, если '?????' пришел из 'read.csv()' с неправильной кодировкой Unicode или странным символом разделителя, вы можете исправить это. – smci