R中的子集特征向量
我知道这是一个非常简单的问题,但我真的不知道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
> 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的知识。。。