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

问题描述 投票:0回答:1

我有一个数据框,其中某些值以(SP1)(SP2)along结尾,其他值不以(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

谢谢你的帮助!

r regex dplyr
1个回答
1
投票

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

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

我们不需要任何[]

subset(location.simple, !grepl("(SP1)|(SP2)", location.simple$Location_Name))
#  Location_Name   City
#1        AMEM01 London
#2        BANY01  Leeds
© www.soinside.com 2019 - 2024. All rights reserved.