Добавление пробела в конце каждого элемента в кадре данных? - PullRequest
0 голосов
/ 05 мая 2018

Предполагая, что кадр данных подобен этому:

Names <- data.frame(Companies=c('NINTENDO', 'SONY', 'MICROSOFT'))

Я хочу, чтобы R давал каждому элементу (NINTENDO, SONY и MICROSOFT) пробел в конце их имен, чтобы конечный результат был точно таким же, как приведенный выше, но только с добавленным пробелом в конце каждое имя:

Names <- data.frame(Companies=c('NINTENDO ', 'SONY ', 'MICROSOFT '))

Еще один вопрос, есть ли аналогичный способ добавить пробел перед каждым именем? Вроде таких:

Names <- data.frame(Companies=c(' NINTENDO', ' SONY', ' MICROSOFT'))

Ответы [ 3 ]

0 голосов
/ 05 мая 2018

Вы также можете использовать sprintf:

sprintf(" %s ", Names$Companies)
# [1] " NINTENDO "  " SONY "      " MICROSOFT "
0 голосов
/ 05 мая 2018

Или прямой подход будет использовать paste или paste0

paste(" ",Names$Companies)
#[1] " NINTENDO"  " SONY"      " MICROSOFT"

paste(Names$Companies, " ")
#[1] "NINTENDO "  "SONY "      "MICROSOFT "

Вы также можете объединить их с помощью

paste(" ",Names$Companies, " ")
#[1] "  NINTENDO  "  "  SONY  "      "  MICROSOFT  "

Как прокомментировал @Karolis paste добавил бы пробел по умолчанию, так как sep erator использует paste0 вместо

paste0(" ",Names$Companies, " ")
#[1] " NINTENDO "  " SONY "      " MICROSOFT "
0 голосов
/ 05 мая 2018

Вы можете сделать это, используя sub.

sub("$", " ", Names$Companies)
[1] "NINTENDO "  "SONY "      "MICROSOFT "
sub("^", " ", Names$Companies)
[1] " NINTENDO"  " SONY"      " MICROSOFT"

В регулярных выражениях $ обозначает конец строки. ^ обозначает начало.

...