【发布时间】:2020-12-23 21:50:12
【问题描述】:
我最近一直在学习如何用 R 编写代码,所以我对 apply 一点也不熟悉。据我所知,循环在 R 中效率不高,所以我尝试使用 apply 函数,但没有得到任何结果。
这是我的循环:
encoder_output <- function(sequence, vocabulary){
auxlist <- list()
for (i in sequence) {
encoded <- to_categorical(i, num_classes=vocabulary)
auxlist <- append(auxlist, encoded)
}
arrOutput <- array(unlist(auxlist),dim =c(nrow(sequence),ncol(sequence),vocabulary))
return(arrOutput)
}
这是我的申请:
encode_output <- function(sequence, vocabulary){
auxlist <- list()
apply(sequence, 1,function(x){
encoded <- to_categorical(x, num_classes=vocabulary)
auxlist <- append(auxlist, encoded)
})
array <- array(unlist(auxlist), dim= c(nrow(sequence),ncol(sequence),vocabulary) )
return(array)
}
但是在我的应用函数中,我在 unlist 中遇到错误,因为它说 auxlist 是空的。 我不知道我做错了什么。顺便说一句,序列是一个二维矩阵。我相信这段代码足以解决我的问题,但如有必要,我会用更多代码更新它。 多谢你们! PS:我正在使用 keras 库来用户 to_categorical。
【问题讨论】:
-
如果您可以添加一个示例数据,我们可以测试我们的代码以及您的代码,这将很有帮助。它还将帮助我们了解您的预期输出。