Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_String_Subset - Fatal编程技术网

R中的子集特征向量

R中的子集特征向量,r,string,subset,R,String,Subset,我知道这是一个非常简单的问题,但我真的不知道R中最好(最常见)的方式是什么。 我有一个字符向量: > dataframes [1] "saga/dataframes/isce.log" "saga/dataframes/no_filter.csv" [3] "saga/dataframes/sig0.9_iter100_viter50_nb_cv0.c

我知道这是一个非常简单的问题,但我真的不知道R中最好(最常见)的方式是什么。 我有一个字符向量:

> dataframes
[1] "saga/dataframes/isce.log"                          "saga/dataframes/no_filter.csv"                    
[3] "saga/dataframes/sig0.9_iter100_viter50_nb_cv0.csv" "saga/dataframes/sig0.9_iter20_viter50_nb_cv0.csv" 
我想要的是元素中没有
isce.log
的条目。所以实际上是第二到第四。 在R中有太多的选项来处理字符向量,我非常困惑。
这是
子集
的情况还是
dplyr
过滤器或
stru子集
的情况?

使用
grepl

dataframes[!grepl("isce.log", dataframes, fixed=TRUE)]

[1] "saga/dataframes/no_filter.csv"
[2] "saga/dataframes/sig0.9_iter100_viter50_nb_cv0.csv"
[3] "saga/dataframes/sig0.9_iter20_viter50_nb_cv0.csv"
数据:

dataframes <- c("saga/dataframes/isce.log",
                "saga/dataframes/no_filter.csv",  
                "saga/dataframes/sig0.9_iter100_viter50_nb_cv0.csv",
                "saga/dataframes/sig0.9_iter20_viter50_nb_cv0.csv")
dataframes或者您可以尝试:

grep("isce.log",dataframes,value=TRUE,invert=TRUE)

选项
value=TRUE
返回向量中匹配的值,使用
invert=TRUE
翻转..

使用
stru子集

stringr::str_subset(dataframes, "isce.log", negate = TRUE)

#[1] "saga/dataframes/no_filter.csv" 
#[2] "saga/dataframes/sig0.9_iter100_viter50_nb_cv0.csv"
#[3] "saga/dataframes/sig0.9_iter20_viter50_nb_cv0.csv" 

太好了,非常感谢!Grep似乎真的是最好的工具。但是我为什么要反转它呢?你想要没有“isce.log”的值吗?所以它必须是相反的。如果您尝试
grep(“isce.log”,dataframes,value=TRUE)
您得到的值当然具有。。。。抱歉,没有足够的咖啡是的谢谢:)真的需要学习更多关于使用grep的知识。。。