R - Удалить текст из имени столбца после символа [ - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть кадр данных в R, называемый hues

Он имеет 3 столбца, называемых color1 [основной], color2 [вторичный], color3 [третичный]

Я пытался использовать sub / gsub и т. Д., но не нашли решения

Кто-нибудь может помочь?

names(hues) = gsub(pattern = "\\[*", replacement = "", x = names(hues))

У меня есть

color1 [primary]     color2 [secondary]    color3 [tertiary]
blue                pink                  red

Я хочу это

color1              color2                color3 
blue                pink                  red

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Здесь это излишне, но, возможно, было бы полезно узнать решение и с stringr:

library(stringr)

names(hues) = word(names(hues), 1)

Вывод:

  color1 color2 color3
1   blue   pink    red

Используемые данные:

hues <- data.frame("color1 [primary]" = c("blue"), 
                 "color2 [secondary]" = c("pink"), 
                 "color3 [tertiary]" = c("red"), check.names = F)
0 голосов
/ 07 февраля 2019

Вам необходимо добавить . перед *, чтобы указать, что вы хотите заменить любое количество символов после [.Также добавьте пробел перед \\[, чтобы удалить его тоже.Я превратил имена столбцов в символьный вектор, но заменил ex на names(hues) для вашего hues фрейма данных и, очевидно, назначил его обратно, поскольку он просто печатает выходные данные.

ex <- c("color1 [primary]", "color2 [secondary]", "color3 [tertiary]")
gsub(" \\[.*", "", ex)
#> [1] "color1" "color2" "color3"

Создано в 2019-02-06 пакетом Представ (v0.2.1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...