gpt4 book ai didi

r - 如何避免类名与包 "loaded via a namespace (and not attached)"(qdap&openssl)冲突

转载 作者:行者123 更新时间:2023-12-02 06:34:18 25 4
gpt4 key购买 nike

使用qdap::polarity()函数有时会遇到错误:

Error in derive_pubkey(key) : RAW() can only be applied to a 'raw', not a 'list'

我相当确定这是由于 qdapkey 类与 openssl 包的 key 冲突造成的类(因为错误消息中引用了来自 opensslderive_pubkey())。

openssl 出现在 sessionInfo()loaded via a namespace (and not Attach): 部分时,就会发生错误似乎放弃了关键类的方法分派(dispatch)并导致错误。

我只能通过重新启动 R session 来修复该错误。有没有办法从 session 中删除 openssl 的足迹来解决此问题?或者有其他方法可以避免此问题而不重新启动 R?

重现错误

> successful      <- qdap::polarity("testing")
> load_openssl_ns <- body(openssl:::print.key)
> fails <- qdap::polarity("testing")
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
> 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 创建它创建一个具有类“qdap_hash”,“key”,...的对象

qdap_hash 没有自己的“[[”方法,因此它会检查 key 是否具有“[[”方法,而它通常没有。一旦 openssl 加载,就会有一个 [[ key 方法,因此它使用该方法并给出错误,因为它不是预期的形式。如果我们为 qdap_hash 定义自己的方法,那么在尝试使用 [[.key 之前就会调用该方法。所以我们绕过这个问题。 qdap 的作者已被告知该问题和可能的解决方案。

关于r - 如何避免类名与包 "loaded via a namespace (and not attached)"(qdap&openssl)冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45197158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com