看板 R_Language 關於我們 聯絡資訊
文章分類提示: - 問題: 當你想要問問題時,請使用這個類別。 [問題類型]: 程式諮詢(我想用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 選擇性,也許未來有用 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.136.217 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1481882096.A.944.html
andrew43: 可以直接用中括號來選列。 12/16 20:24
大大您好,我把filter原本用的 () 改成了 [],但依然顯示以下錯誤 Error in filter[(grep("屯區藝文中心->\\d*", BusData_51$UniqueBusID, value = T))] : object of type 'closure' is not subsettable 請問這個錯誤代表的意思是什麼? 應該如何改才能解決? 感謝 ※ 編輯: joson4921 (1.161.164.166), 12/16/2016 23:45:11
clansoda: hi,filter needs boolean vector, try grepl 12/16 23:57
將原本的 grep 改成用 grepl之後產生了以下errer, 或許可能是像andrew43大大說的,filter不吃用 grep 出來的資料 Error in filter[grepl("莒光新城->\\d*|屯區藝文中心->\\d*", BusData_51$UniqueBusID)] : object of type 'closure' is not subsettable 以下取自andrew43大大在下一篇回文中提供的寫法: =============================================================== selection <- BusData_51 %>% .[grep("莒光新城->\\d*|屯區藝文中心->\\d*", .$UniqueBusID), ] =============================================================== selection是拿來存放 資料來源(即BusData_51) 經過 grep 處理後的結果 我要做的是針對BusData_51中的 UniqueBusID 欄位內容做過濾 只取 UniqueBusID 欄位內含 莒光新城-> 或 屯區藝文中心-> 字串的資料列 以上,非常感謝各位大大協助提供諮詢 ※ 編輯: joson4921 (1.161.164.166), 12/17/2016 16:13:46