[问题类型]:
程式咨询(我想用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