使用R语言qdap包synonyms函数报错:RAW()仅适用于raw而非list
qdap包synonyms函数报错:RAW() can only be applied to a 'raw', not a 'list'
问题详情
运行qdap包文档中的synonyms()示例代码时触发报错,其他qdap功能可正常使用。
报错信息
Error in derive_pubkey(key) :
RAW() can only be applied to a 'raw', not a 'list'
执行代码
library(tidytext) library(textdata) library(coreNLP) library(cleanNLP) library(sentimentr) library(scales) library(igraph) library(ggraph) library(widyr) library(qdap) synonyms(c("the", "cat", "teach"))
traceback输出
> traceback() 12: derive_pubkey(key) 11: as.list.key(x) 10: as.list(x) 9: names.key(xi) 8: names(xi) 7: paste0(prefix, names(xi)[j]) 6: as.data.table.list(x, keep.rownames = keep.rownames, check.names = check.names, .named = nd$.named) 5: data.table::data.table(data.table::copy(key)) 4: hash_lookup_helper(terms, key, missing) 3: hash_look(terms = terms, key = key) 2: terms %hlqdap% synonym.frame 1: synonyms(c("the", "cat", "teach"))
解决方案
这个报错是hash包与qdap包的命名空间冲突导致的:derive_pubkey()是hash包的函数,qdap内部处理key对象时错误调用了该函数,而非自身的方法。
方案1:重新安装qdap并确保依赖完整
remove.packages("qdap") install.packages("qdap", dependencies = TRUE)方案2:避免命名空间冲突
- 如果hash包已加载,先卸载再调用
synonyms():detach("package:hash", unload = TRUE) synonyms(c("the", "cat", "teach")) - 或者直接指定qdap命名空间调用函数:
qdap::synonyms(c("the", "cat", "teach"))
- 如果hash包已加载,先卸载再调用
方案3:检查环境中的冲突包
查看当前加载的包,避免同时加载与qdap存在命名冲突的包。
内容的提问来源于stack exchange,提问作者Ardyn
相关产品推荐
相关产品推荐

