我有一个相当简单的问题,如果我有一个名为“T_01_X_1”,“T_02_X_1”,“T_03_X_1”的变量和变量“T_01_Y_1”,“T_02_Y_1”,“T_03_Y_1”,我只想用grep函数提取包含X的变量,并从T开始。我该怎么做?
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
")
items <- df[grep("T.*", names(df))]
5条答案
按热度按时间qltillow1#
我们可以使用
select
gg0vcinb2#
你可以用-
这将选择名称中以
'T'
开头、后跟'X'
的列。kzmpq1sx3#
我使用
intersect
函数来实现:t5fffqht4#
在正则表达式中,您可以使用插入符号(
^
)在搜索列表的开头扫描字母/单词。要匹配单词中任何位置的特定字符,您可能需要用match-anything正则表达式(.*
)包围该项目,该正则表达式接受任何字母(.
)任意次数(*
)。这将为您提供以下正则表达式来匹配您要查找的内容:
^T.*X.*
。zbq4xfa05#
作为另一种选择,如果您不想使用正则表达式,
dplyr
select helper可能会很有用。你也可以用
stringr
做类似的事情。