使用qdap::polarity()
函数有时会遇到错误:
derive_pubkey(key)出错: RAW()只能应用于'raw'而不是'list'
我很确定这是由于qdap
的{{1}}课与key
包的openssl
课程相冲突(key
来自derive_pubkey()
在错误消息msg中引用。
openssl
出现在openssl
的{{1}}部分时出现错误,并且它似乎会丢弃密钥类的方法调度并导致错误。
我只能通过重新启动R会话来修复错误。有没有办法从会话中删除loaded via a namespace (and not attached):
的足迹来解决这个问题?或者是否有另一种方法可以在不重新启动R的情况下避免此问题?
sessionInfo()
答案 0 :(得分:5)
进行脏修复运行
`[[.qdap_hash` <- `[[.data.frame`
...检查
> qdap::polarity("test")
all total.sentences total.words ave.polarity sd.polarity stan.mean.polarity
1 all 1 1 0 NA NA
> library(openssl)
Warning message:
package ‘openssl’ was built under R version 3.3.3
> qdap::polarity("test")
Error in derive_pubkey(key) :
RAW() can only be applied to a 'raw', not a 'list'
> `[[.qdap_hash` <- `[[.data.frame`
> qdap::polarity("test")
all total.sentences total.words ave.polarity sd.polarity stan.mean.polarity
1 all 1 1 0 NA NA
>
polarity
中的违规行是words <- c(posneg, alter[[1]])
使用alter
创建对象alter_env
,创建一个具有类&#34; qdap_hash&#34;,&#34; key&#34;,...
qdap_hash没有自己的[[&#39;方法,以便检查密钥是否有&#39; [[&#39;通常没有的方法。一旦openssl被加载,就有一个[[key的方法,所以它使用它并给出错误,因为它不是预期的形式。如果我们为qdap_hash定义了自己的方法,甚至在尝试使用[[.key
之前就会调用它,所以我们绕过了这个问题。 qdap的作者已被告知该问题和可能的解决方案。