You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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"))
      
  • 方案3:检查环境中的冲突包
    查看当前加载的包,避免同时加载与qdap存在命名冲突的包。

内容的提问来源于stack exchange,提问作者Ardyn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 13:32:19