[問題] 函數中使用left_join出錯

看板R_Language作者 (Ask and It's Given)時間6年前 (2018/12/19 11:14), 6年前編輯推噓0(0011)
留言11則, 3人參與, 6年前最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 我想寫一個function來幫我批次合併表格,直接執行沒有問題 但是包成function來測試就出錯 (然後我不知道問題再哪...) function中有使用dplyr以及tidyr [程式範例]: DateCollection <- function(CountTable, Date){ dataTable <- CountTable[CountTable[["Date"]]==Date,] groupTable.temp <- gather(GroupTable, Ref_Name, Mut_Name, key = Type, value = Seq_Name) time.vector <- unique(dataTable[["Time"]]) temp.table <- list() for(i in time.vector){ dataTable.time <- dataTable[dataTable[["Time"]]==i, c(3:4)] colnames(dataTable.time) <- c("Seq_Name", "Count") groupTable.temp <- dplyr::left_join(groupTable.temp, dataTable.time, by = c("Seq_Name" = "Seq_Name")) %>% dplyr::select(Group_No, Type, Count) %>% tidyr::spread(Type, Count) temp.table[[i]] <- groupTable.temp } return(temp.table) } } 針對合併表格的部份(dplyr::left_join)直接執行做測試是沒有問題,但是包成function 來測試以後就會有錯誤訊息 錯誤: `by` can't contain join column `Seq_Name` which is missing from LHS 請教各位,我弄錯、還是沒弄清楚什麼...謝謝 [環境敘述]: R version 3.5.1 (2018-07-02) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Linux Mint 19 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.32.9 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1545189293.A.6C2.html ※ 編輯: resentis (140.109.32.9), 12/19/2018 11:59:01

12/19 14:04, 6年前 , 1F
在出錯的上一步先把二個表格的colnames()印出來檢查
12/19 14:04, 1F

12/19 16:18, 6年前 , 2F
謝謝,我先試試
12/19 16:18, 2F

12/19 16:41, 6年前 , 3F
是不是gather中GroupTable沒在function裡指定?
12/19 16:41, 3F

12/20 12:33, 6年前 , 4F
GroupTable是在global env裡的另一個variable,因為出錯
12/20 12:33, 4F

12/20 12:33, 6年前 , 5F
都不是報他的問題所以我覺得那邊應該沒問題(?)
12/20 12:33, 5F

12/25 16:02, 6年前 , 6F
應該是說你給的錯誤訊息是join的左邊dataframe沒辦
12/25 16:02, 6F

12/25 16:02, 6年前 , 7F
法抓到seq_name的欄位 所以要去看一下grouptable.
12/25 16:02, 7F

12/25 16:02, 6年前 , 8F
temp有沒有這個欄位的名稱
12/25 16:02, 8F

12/26 20:27, 6年前 , 9F
有這個欄位是沒有問題的,在包成function之前都有一步一
12/26 20:27, 9F

12/26 20:28, 6年前 , 10F
步做過測試,問題就在不知道為什麼包成function後,就抓
12/26 20:28, 10F

12/26 20:29, 6年前 , 11F
不到了...(神秘..)
12/26 20:29, 11F
文章代碼(AID): #1S6RUjR2 (R_Language)
文章代碼(AID): #1S6RUjR2 (R_Language)