[R] 設定逾時判斷

最近爬蟲偶爾遇到爬某網站時就卡住, 因此想說可否設定當讀取超過多少秒時, 則判斷為錯誤, 然後跳到下一個。 後來發現  R.utils 的   evalWithTimeout , 他可以設定當某個指令或 function 跑多少秒以上就丟出 TimeoutExcep...

Read more

[R] 將Col值依照符號切開後轉成新的Row

有時候一個Col中的每個Row可能含有多個值(如範例中alphabet欄位), 想把這些值切開產生新的Row作分析的話, 可以參考 此篇 , 其中使用 tidyr 中的 separate_rows() 相對較直覺, separate_rows() 中第一個參數為 d...

Read more

[R] 計算文字在句子中出現次數

一般判斷句子中是否出現文字常用的是 grepl, 不過 grepl 是回傳 TRUE 或 FALSE, 而要計算文字在句中出現次數的話, 就要使用 stringr 套件中的 str_count , 其回傳值為出現次數(數值), 下面範例可以試試看, 會比較好理解。...

Read more

[R] dplyr 轉換為 data.table 在處理速度上具有差異

最近在作些一般分析時, 發現當資料量大的時候, dplyr  跟  data.table  處理會差很多(個人處理到200萬筆資料時速度上就有明顯差異)。 此篇文章有 data.table 的介紹: 連結 , 詳細內容可以看上述文章, 下面舉三個例子(有的文章內沒有)...

Read more

[R] 更改檔案名稱及壓縮檔案 (rename, zip)

最近發現比較有趣的功能, R也可以結合迴圈等語法修改以及壓縮大量檔案。 修改檔名是用 file.rename , 下面範例中 from 帶入的是原本的檔案名稱, to 則是修改後的名稱。 壓縮檔案是用  zip , zipfile 是帶入壓縮檔的名稱, files...

Read more
[R] Data Frame 資料集合併(merge, join)

[R] Data Frame 資料集合併(merge, join)

資料集的合併常用的大致為Inner Join、Full Join、Left Join、Right Join。 這些方式的差異主要為最後留下的key(依照哪個欄位來合併)是什麼。 下圖整理了大致上差異為何。 下面依照網路資源, 修正整理了四大類join方法, 分別...

Read more
[R] 將多個 col 轉成一個 col 以利處理資料(melt 與 dcast)

[R] 將多個 col 轉成一個 col 以利處理資料(melt 與 dcast)

有時候在資料篩選處理或繪圖上, 需要將多個col轉換成一個col。 類似以下這張圖。 例如當要篩選出多個col的值>0的資料, 轉換成右方格式即能很快的處理。 這部分真的還是要自己去實作比較能感受到實際狀況。 下面為範例, melt  為左圖格式轉...

Read more

[R] .Last.value 與 賦予值給物件時加入引號

最近看到滿有趣的幾個用法。 第一個是 .Last.value , 他會等於是最新剛剛宣告的物件。 另一個是當原本在賦予值給物件時, 是不會顯示物件的值為何, 不過用引號包起來的話, 賦予值時, 也會顯示其值為何, 就不需要再打一次物件名稱來觀察其值。...

Read more

[R] 錯誤處理方式:Error in n() : This function should not be called directly

有時在用  dplyr  時, 會發現有些函數失效, 或是出現錯誤, 有一個可能是除了有載入  dplyr  之外, 也載入了  plyr  , 導致產生衝突(兩個library都有此函數,如  summarize  )。 解決辦法很簡單, 假設我要使用  sum...

Read more

[R] R與RStudio清空Console快捷鍵

有時需要清空Console, 其快捷鍵很簡單, 就是按下 Ctrl + L , 即可清空Console。

Read more

[R] 數值不要以科學記號(scientific notation)呈現

R預設會將過大的數值會轉成科學記號(scientific notation)呈現, 例如 999999999999999 會顯示 1e+15。 想要不要讓它以科學記號呈現, 加入 options(scipen=999) , 就都不會以科學記號方式呈現了。 以下為範例: ...

Read more
[玩玩小數據] 從人力銀行職缺看資料分析師需要些什麼技能(R? Python? ...?)

[玩玩小數據] 從人力銀行職缺看資料分析師需要些什麼技能(R? Python? ...?)

一直到現在,到底該學R還是Python其實一直沒有特別的定論,個別有其特色與優缺點,還是以個人需求作抉擇(可參考國外網站與趨勢:  1 ,  2 )。而台灣企業對資料分析師的能力需求,或許可以看看人力銀行中,資料分析師相關的職缺要求能力有哪些。 先從國際上2016年 ...

Read more

[R] 使用data.table使處理資料變更快速(以unique為例)

有些時候在處理很大的data frame時會相當緩慢, 套件 data.table 在這時就會相當有用, 使用 setDT(df) 即可將 data frame 轉成 data table, 如我想轉回原本 data frame格式, 就使用 setDF(df) 即...

Read more

[R] 各種常用讀取Excel檔案的範例

整理一下常用的讀取Excel檔所使用的函式, 主要會讀到的是xlsx、xls以及csv檔。 xlsx、xls可以用 read_excel 來讀取, 結合 excel_sheets 與 rbind 則可抓出檔中所有sheet的資料。 也可使用 readWorksheet ...

Read more

[R] 設定Rprofile.site以改變R初始環境

如果想客製化R的初始環境, 可以找到 Rprofile.site 這個檔案做設定, 這檔案在  ....\R-X.X.X\etc  中(例如C:\Program Files\R\R-X.X.X\etc,X.X.X為R的版本)。 例如在檔案加入 setwd(...

Read more

[R] 如何把長條圖轉為橫條圖 (ggplot2)

在做分析時會用到長條圖, 不過有些時候因為類別名稱太長, 用橫條圖再顯示上會比較美觀。 長條圖的ggplot2實作網路很多, 這篇就很詳細: 連結 。 橫條圖實際上也很簡單, 只要在ggplot後面加入  coord_flip() , 就會將長條圖變成橫條圖了(其他...

Read more
[PuTTY] 用PuTTY連接Ubuntu

[PuTTY] 用PuTTY連接Ubuntu

最近在使用VirtualBox建Ubuntu虛擬機, 想直接用Windows直接打指令控制虛擬機, PuTTY 算是相當方便的軟體。 下圖就是 PuTTY 的畫面, 設定好相關設定後按Open, 就會進入登入畫面, 輸入帳號密碼後就可以開始用了。 相關文章: [...

Read more

[學習資源] 資料分析教學參考資源(R, Python, ...) 2016/12/05更新

網路資源: [中]包含R的教學文    http://blog.gtwang.org/ [中]R、Python..等相關Blog    http://bryannotes.blogspot.tw/search/label/R?max-results=20 [...

Read more

[R] 當數值型轉Factor再轉回數字型資料時需注意之事項

假設建立一個數值型Vector, 當數值型資料轉成Factor後, 再轉回數值型態, 可能會遇到問題。 例如建立一個 tmp: tmp <- c(2,3,3,2,4,4) , 將其轉成Factor: f_tmp <- factor(tmp) , 當再把...

Read more
[R] R教學 - R? Rstudio?

[R] R教學 - R? Rstudio?

最近有朋友想學R, 問說到底該安裝R還是Rstudio, 簡單講, 要寫R語言就要安裝R, 而Rstudio是一個R語言的IDE, IDE就是整合開發環境, 在這環境寫code更加方便。 以R的環境而言, R的介面如下圖: 而R...

Read more
[Ubuntu] 設定固定IP

[Ubuntu] 設定固定IP

在使用Virtual Box架Ubuntu虛擬機時, 想要設定固定IP, 網路上有許多指令教學, 不過這裡是介紹手動方法, 直接進行修改。 以下一步一步以圖方式介紹: 第一步:將此虛擬機網路的設定值改為「橋接介面卡」。 第二步:開啟Ubunt...

Read more

[R] 發生錯誤 : "Error: invalid multibyte character in parser at line 1" 的處理方式

有時使用中文時會出現 Error: invalid multibyte character in parser at line 1  的問題, 或是 Error in nchar(homeDir) : invalid multibyte string, element 1 。 ...

Read more

[R] jiebaR - 結巴分詞

在進行文字探勘時, 需要把句子切成詞彙。 R裡面我有用到的library是tmcn跟jiebar。 jiebar很直覺, 先用 cutter=worker() 產生一個切詞器, 便可以用cutter來切割句子。 我們還可以使用 new_user_word 來將新詞彙加...

Read more

[R] 將值賦予給文字以及全域變數宣告

有時候會將變數或值指定給文字(變數名稱), 讓文字變成新的變數, 就可以用 assign 。 例如 assign('Im_Variable', 'Im Value') , Im_Variable就成為變數,賦予值 'Im V...

Read more

[R] 使用R進行樞紐分析

分析時有時會用到樞紐分析, R也有類似的功能, 就是 plyr 。 如下面例子, 產生一個data frame, 其中包含組別、性別與年齡三個col, 我們可以使用 ddply , 依照組別與年齡作為分組標準, 計算各組的平均數與標準差。 另外也常遇到計算各組...

Read more

[R] 利用R下載網頁上的檔案

最近用網路爬蟲, 赫然想到是否可以直接用R下載檔案, 發現真的有相關函式, 就是 download.file 。 你可以給他網址, 並且設定檔案名稱, 即可將檔案下載下來, 配合網路爬蟲抓取多個URL即可自動化下載多個檔案了(?)。 下面有程式碼範例。 Whe...

Read more

[好文] 資料科學面面觀

這篇文章由台大圖資系所整理, 講者為中研院資料科學研究所研究員, 提到一些大數據應用以及迷思。 演講投影片: 連結 台大圖資系整理文章: 連結

Read more

[R] 使用rvest進行網路爬蟲 (二)

  在使用網路爬蟲時,有些時候網頁的url並不一定具有規則(例如PTT),那我們可以先從其列表中抓取個網站的url(PTT的每一頁列表的url具有規則),再利用這些爬到的url去做網路爬蟲。   例如我要爬marvel版第1657頁的所有文章,我就需要讀取.title底下的a ...

Read more

[R] 使用rvest進行網路爬蟲

在R之中可以用rvest進行網路爬蟲, url 表示你要抓取資料的連結, read_html(url) %>% html_nodes("section p") %>% html_text() 表示去抓取這連結底下,標籤section底下的標籤p...

Read more

[R] for loop 運行進度顯示

  When processing data using for loop, you would want to know the process rate. You can use print , cat or  txtProgressBar .   print and c...

Read more

[R] 去除字串前後空格

  When processing data, sometimes we need to remove beginning or ending spaces (or even other kinds of punctuation) in string. In R, as can ...

Read more