R对数据帧进行子集化,从列中排除某些值

时间:2018-01-15 10:24:50

标签: r regex dplyr

我的数据框包含以(SP1)(SP2)结尾的某些值以及不以(SP1)(SP2)结尾的其他值。 我想要完成的是创建一个新的数据框,其中只包含不在(SP1)(SP2)上结束的值

我可以对包含(SP1)(SP2)的值进行子集化,如下所示:

Loc.Z.End = subset(location.simple, grepl("(SP1)|(SP2)", location.simple$Location_Name))

我认为添加!运算符会如下所示,但事实并非如此!

Loc.Z.End = subset(location.simple, [!grepl("(SP1)|(SP2)", location.simple$Location_Name)])

但这不是诀窍!我做错了什么?

这是数据的一个例子

Location_Name City AMEM01 London BANY01 Leeds HSBC Dubai (SP1) Dubai Leeds(SP2) Leeds

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

采用grepl逻辑表达式的参数为subset并且根据?subset

  

subset - 指示要保留的元素或行的逻辑表达式:   缺失值视为错误。

我们不需要任何[]

subset(location.simple, !grepl("(SP1)|(SP2)", location.simple$Location_Name))
#  Location_Name   City
#1        AMEM01 London
#2        BANY01  Leeds