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

R 去掉带有部分字符串的行

R 去掉带有部分字符串的行,r,filter,R,Filter,我有一个数据框单个数据,其中有几行我想去掉 area year Temp BON-AR-S2 2016 1.853 BON-W-S5 2018 2.2 HFX 102 2018 1.2 NSTR 525

我有一个数据框
单个数据
,其中有几行我想去掉

area                       year               Temp
BON-AR-S2                  2016               1.853
BON-W-S5                   2018               2.2
HFX 102                    2018               1.2
NSTR 525                   2017               2.0  
NSTR 787                   2017               2.3
HFX 101                    2016               1.9 
Boca Raton                 2015               20
Shutter                    2015               21
Shutter                    2017               1.3
Ketch                      2017               1.3
Ketch                      2018               1.9   
我只想保留字符串以NSTR、HFX和Boca raton行开头的行。。。我该如何保存这些。。。。或者我该如何摆脱剩下的。我试过用这个的倍数

individual_dets$area = filter(individual_dets, area != "BON-AR-S2")
但它在没有原始数据的情况下输出完全不同的数据帧,我也尝试过

individual_dets = filter(individual_dets, area != "BON-AR-S2")
但是什么都没发生


有人知道如何解决这个问题吗?

=
=
仅适用于精确匹配。如果要匹配字符串的一部分,则需要
grepl
。您还说线路应该以NSTR、HFX或Boca开头。行的开头可以用正则表达式表示。对于多个模式,您可以使用
|
,它是或的正则表达式:


=
=
仅适用于精确匹配。如果要匹配字符串的一部分,则需要
grepl
。您还说线路应该以NSTR、HFX或Boca开头。行的开头可以用正则表达式表示。对于多个模式,您可以使用
|
,它是或的正则表达式:


搜索字符串时,您不使用
==
,而是使用%中的
%

如果要返回没有特定行的data.frame,则不需要编写
individual_dets$area=
,而是
df=
。前者将更改表中的一列,后者将创建一个新的data.frame

您可以使用
子集
(基本R)代替
过滤器
(需要dplyr)

总而言之:

df = subset(individual_dets, !area %in% "BON-AR-S2")

编辑:正如@JBGruber所指出的,如果您想在字符串查找方面更加通用,请使用
子集(单个数据,!grepl(“BON”,area))
,在搜索字符串时不要使用
==
,而是在%
中使用
%

如果要返回没有特定行的data.frame,则不需要编写
individual_dets$area=
,而是
df=
。前者将更改表中的一列,后者将创建一个新的data.frame

您可以使用
子集
(基本R)代替
过滤器
(需要dplyr)

总而言之:

df = subset(individual_dets, !area %in% "BON-AR-S2")
编辑:正如@JBGruber所指出的,如果您想在字符串查找方面更为通用,请使用
子集(单个数据,!grepl(“BON”,area))