R:regex,除

vwkv1x7d  于 2023-04-22  发布在  其他
关注(0)|答案(2)|浏览(75)

我的数据框中有列,如

1234-sd
1234-abs
1234-mean
1234-min

我想做一个selection与匹配,以便只有1234-mean被选中。我尝试了类似dplyr::select(matches("^1234-*(!mean)"))的东西,但这不起作用。有什么想法吗?:)

esbemjvw

esbemjvw1#

在向量上

> x=c("1234-sd","1234-abs","1234-mean","1234-min")
> grepl("\\d+-mean",x)
[1] FALSE FALSE  TRUE FALSE
sh7euo9m

sh7euo9m2#

你可以使用dplyr的select()-来删除特定的列。注意,你的变量名是非语法的,你需要用```来转义它们:

library(dplyr)

df <- data.frame(`1234-sd` = c(1,2,3),
                 `1234-abs` = c(1,2,3),
                 `1234-mean` = c(4,5,6),
                 `1234-min` = c(1,2,3),
                 check.names = FALSE)

df %>% select(-`1234-mean`)
#   1234-sd 1234-abs 1234-min
# 1       1        1        1
# 2       2        2        2
# 3       3        3        3

相关问题