R中是否有一个函数可以删除特定给定内容的数千行?

Kat*_*aty 2 r rows

我有TLSWL大约20,000行的数据框(称为)。我Time在df中有一列,我需要删除所有在特定分钟内结束的行。我只需要增加30分钟的时间即可匹配其他数据进行比较。

这是我目前正在使用的:

TLSWL<- TLSWL[TLSWL$Time != "0:06"&TLSWL$Time !="0:12"&TLSWL$Time 
    !="0:18"&TLSWL$Time !="0:24"&TLSWL$Time != "0:36"&TLSWL$Time 
    !="0:42"&TLSWL$Time !="0:48"&TLSWL$Time != "0:54"&TLSWL$Time 
    != "1:06"&TLSWL$Time != "1:12"&TLSWL$Time != "1:18"&TLSWL$Time 
    != "1:24"&TLSWL$Time != "1:36"&TLSWL$Time != "1:42"&TLSWL$Time 
    != "1:48"&TLSWL$Time != "1:54"&TLSWL$Time != "2:06"&TLSWL$Time 
    != "2:12"&TLSWL$Time != "2:18"&TLSWL$Time != "2:24"&TLSWL$Time 
    != "2:36"&TLSWL$Time != "2:42"&TLSWL$Time != "2:48"&TLSWL$Time 
    != "2:54"&TLSWL$Time != "3:06"&TLSWL$Time != "3:12"&TLSWL$Time  
           and so on all the way to the times in 24:xx
Run Code Online (Sandbox Code Playgroud)

它适用于较小的数据帧,而不是在军事时间,但是您可以看到以这种方式进行操作所需的代码行最终会变得很长。

可以更有效地做到这一点吗?

akr*_*run 5

一种选择是创建一个vector需要匹配的值('v1'),用于%in%获取逻辑向量,取反(!)并对行进行子集化

TLSWL[!TLSWL$Time %in% v1, , drop = FALSE]
Run Code Online (Sandbox Code Playgroud)