R语言如何使用grep函数筛选以T开头且包含X的列变量
R语言列名筛选解决方案
你当前编写的代码仅匹配了所有以T开头的列,未加入「列名包含X」的筛选条件,调整grep函数的正则表达式即可实现需求:
df <- read.table(header=TRUE, text=" T_01_X_1 T_02_X_2 T_03_X_3 T_01_Y_1 T_02_Y_2 T_03_Y_3 1 2 3 2 1 3 2 3 4 2 1 3 2 3 4 2 1 4 2 4 5 2 1 3 ") # 匹配以T开头且包含X的列名 items <- df[grep("^T.*X", names(df))]
正则逻辑说明
^T:限定字符串开头必须为字符T,满足「列名以T开头」的要求.*X:表示T之后可匹配任意数量的任意字符,只要出现字符X即可,满足「列名包含X」的要求
如果需要兼容大小写的X,可以增加ignore.case = TRUE参数:items <- df[grep("^T.*X", names(df), ignore.case = TRUE)]
内容的提问来源于stack exchange,提问作者natash
相关产品推荐
相关产品推荐

