gpt4 book ai didi

r - 按正则表达式模式选择列名

转载 作者:行者123 更新时间:2023-12-01 09:45:33 26 4
gpt4 key购买 nike

我想选择以下列四种方式之一开始的所有列:CB、LB、LW、CW,但不选择任何带有字符串“con”的列。

我目前的做法是:

tester <- df_ans[,names(df_ans) %in% colnames(df_ans)[grepl("^(LW|LB|CW|CB)[A-Z_0-9]*",colnames(df_ans))]]
tester <- tester[,names(tester) %in% colnames(tester)[!grepl("con",colnames(tester))]]

在像 dplyr 这样的库中,有没有更好/更有效的方法来做到这一点?

最佳答案

我们可以使用 matches

library(dplyr)
df %>%
select(matches("^(CB|LB|LW|CW)"), -matches("con"))
# CB1 LB2 CW3 LW20
#1 3 9 6 1
#2 3 3 4 5
#3 7 7 7 7
#4 5 8 7 2
#5 6 3 3 3

数据
set.seed(24)
df <- as.data.frame(matrix(sample(1:9, 10 * 5, replace = TRUE),
ncol = 10, dimnames = list(NULL, c("CB1", "LB2", "CW3", "WC1",
"LW20", "conifer", "hercon", "other", "other2", "other3"))))

关于r - 按正则表达式模式选择列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49838078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com