分享在使用dplyr時遇到的狀況:
這是一個很平常的將檔案讀進來的步驟,但比較特別的是我使用了readr package的read_csv來讀取。
而讀進來後的nor.count長這樣
接下來我做這些事情,將column重新命名,且把gene list的名字提取出來,為了等會轉換成單純的matrix,提取後在使用dplyr的select,可以直接去掉gene的這行。當nor.count為完全的numeric matrix時,我將數值做log2 transformatiopn,接下來便要開始來處理資料
接者想要把資料裡的row不等於0濾掉,所以使用filter上面 (錯誤訊息發生)
從錯誤訊息,看起來可能是nor.count的格式不符合,再來看一下現在nor.count變成什麼樣子了
這時候發現一個奇怪的地方,在nor.count的structure中,看到gene下面還有一個data.frame Gene!!
原來是在tbl_df的object中,用傳統的方式subset他還是會保持tbl_df,不會因此變成atomic vector的形式
像上面這種是很常見的subsetting的方法,subset完後,就照下面的方式再塞回data.frame中,但在tbl_df的object用此操作則會發生問題,這樣就會變成在data.frame裡面塞入一個data.frame,而這種形式就會造成之後的function無法處理
所以面對tbl_df就必須乖乖的使用
把gene.list給放回去!