[問題類型]:
程式諮詢(我想用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