Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何仅查找包含特定字符的列_R_List_Dataframe - Fatal编程技术网

R 如何仅查找包含特定字符的列

R 如何仅查找包含特定字符的列,r,list,dataframe,R,List,Dataframe,我希望获得包含特定字符的列列表,例如,我有一个数据框对象: dat <- read.table(text = " TargetVar Tar_Var1 Var2 Var3 0 0 0 7 0 0 1 1 0 1 0 3 0 1 1 7 1 0 0

我希望获得包含特定字符的列列表,例如,我有一个数据框对象:

dat <- read.table(text = " TargetVar  Tar_Var1    Var2       Var3
 0        0        0         7
 0        0        1         1
 0        1        0         3
 0        1        1         7
 1        0        0         5
 1        0        1         1
 1        1        0         0
 1        1        1         6
 0        0        0         8
 0        0        1         5
 1        1        1         4
 0        0        1         2
 1        0        0         9
 1        1        1         2  ", header = TRUE)

dat使用
grep
grepl
如下:

colnames(dat)[grepl("Tar", colnames(dat))]

## > colnames(dat)[grepl("Tar", colnames(dat))]
## [1] "TargetVar" "Tar_Var1" 
这有助于理解
grepl
的作用:

grepl("Tar", colnames(dat))
## [1]  TRUE  TRUE FALSE FALSE

请注意,您可以通过设置
ignore.case=TRUE

使用
grep
grepl
忽略大小写,如下所示:

colnames(dat)[grepl("Tar", colnames(dat))]

## > colnames(dat)[grepl("Tar", colnames(dat))]
## [1] "TargetVar" "Tar_Var1" 
这有助于理解
grepl
的作用:

grepl("Tar", colnames(dat))
## [1]  TRUE  TRUE FALSE FALSE

请注意,您可以通过设置
ignore.case=TRUE

单向忽略大小写:
grep(“^Tar”,names(dat),value=TRUE)
谢谢您,Arun,符号“^s”有什么作用?它是元字符。它确保列名以
Tar
开头,这样它就不会找到名为
VTar\u robots\u sound
的列。^要求搜索字符串仅在其位于字符串开头时返回匹配项。例如,“^Tar”不会返回与“FirstTarget”匹配的结果,但会返回与变量名匹配的结果。另外一件可能有用的事情是:^也用于否定。例如,“[^0-9]”将匹配除数字0到9之外的任何字符,而“[0-9]”将仅匹配0到9。因此,^的含义取决于上下文。一种方法:
grep(“^Tar”,names(dat),value=TRUE)
谢谢你,阿伦,符号^是做什么的?它是一个元字符。它确保列名以
Tar
开头,这样它就不会找到名为
VTar\u robots\u sound
的列。^要求搜索字符串仅在其位于字符串开头时返回匹配项。例如,“^Tar”不会返回与“FirstTarget”匹配的结果,但会返回与变量名匹配的结果。另外一件可能有用的事情是:^也用于否定。例如,“[^0-9]”将匹配除数字0到9之外的任何字符,而“[0-9]”将仅匹配0到9。因此,^的含义取决于上下文。