我举一个很简单的例子
library(dplyr)
data(CO2)
CO2 %>% .[grep("^Qn[12]$", .$Plant), ]
你希望用 filter() 来做,但它不适合吃 grep() 回传资料。
※ 引述《joson4921 (特务)》之铭言:
:
: 文章分类提示:
: - 问题: 当你想要问问题时,请使用这个类别。
:
: [问题类型]:
:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
:
: [软件熟悉度]:
: 请把以下不需要的部份删除
: 新手(没写过程式,R 是我的第一次)
:
: [问题叙述]:
: 请简略描述你所要做的事情,或是这个程式的目的
: Data含有资料如下所示:
: Time UniqueBusID
: 1 12:00:30 273-FC_o 大东纺织(振兴路)->屯区艺文中心162
: 2 14:45:54 273-FC_o 大东纺织(振兴路)->屯区艺文中心162
: 3 15:53:47 273-FC_o 屯区艺文中心->莒光新城163
: 4 17:17:56 285-FC_o 下太平->莒光新城164
: 5 15:46:12 285-FC_o 莒光新城->莒光新城163
: 我想做的是将UniqueBusID内含有"屯区艺文中心->","莒光新城->"两字串的资料列取出
: 具体做法是先使用检测用的函数检测UniqueBusID是否含有该二字串,
: 爬文之后选用grep来做检测,检测之后再用filter将通过grep检测的资料列留下
: 但我发现使用filter()不能直接在括号内放进grep那一串,改用mutate也一样不行
: 请问板上大大这中间是不是我想错了什么导致我无法取出我要的结果呢?
: PS.结果应仅剩下第3和第5资料列
: 先感谢板大拨冗解惑
: [程式范例]:
:
: filter(grep("莒光新城->\\d*|屯区艺文中心->\\d*",
: BusData_51$UniqueBusID, value = T))
: filter)
: [环境叙述]:
:
: [关键字]:
: grep, filter, mutate
:
: 选择性,也许未来有用
: