我在R中有一个称为色相的数据框
它有3列,分别为color1 [primary],color2 [secondary],color3 [terary]
我尝试使用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
答案 0 :(得分:0)
您需要在.
之前添加*
,以指示您要替换[
之后的任意数量的字符。也请在\\[
之前添加一个空格以删除该空格。我将列名变成了一个字符向量,但是将ex
数据帧中的names(hues)
替换为hues
,并显然将其分配回来,因为它只是在此处打印输出。
ex <- c("color1 [primary]", "color2 [secondary]", "color3 [tertiary]")
gsub(" \\[.*", "", ex)
#> [1] "color1" "color2" "color3"
由reprex package(v0.2.1)于2019-02-06创建
答案 1 :(得分:0)
这在这里是一个过大的杀伤力,但是也许也知道使用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)