在 R 中使用散列包时无法将类型 'closure' 强制转换为类型 'character' 的向量

cannot coerce type 'closure' to vector of type 'character' while using hash package in R

我正在尝试将一段 python 代码转换为 R。在 python 中,使用了字典中的字典。所以我正在尝试利用 R 中的散列包,

Python代码:

titles = {
'NAME' :{
    'exact':['NAME']
    ,'partial':[]
    }
, 'Dt' :{
    'exact':['Dt']
    ,'partial':[]
    }
, 'CC' :{
    'exact':[]
    ,'partial':[]
    }
      }

而 R 代码是,

library(hash)
titles = hash(("NAME" = list("exact"=list('NAME'),"partial"=list())),
          ("Dt" = list("exact"=list('Dt'),"partial"=list())),
          ("CC" = list("exact"=list(),"partial"=list())))

但是当我尝试在散列环境中使用此代码时,出现以下错误。

Error in as.vector(x, "character") : 
  cannot coerce type 'closure' to vector of type 'character'

当我尝试用列表替换散列时,它工作正常。但是,我使用 key/value pair(hash package) 主要是因为我必须使用内部字典,我的意思是根据外部字典键更改内部字典值。知道为什么我会收到此错误或任何其他方法。

更新下面以使问题更加清楚。

为了进一步解释,我将其创建为 key/value 对(散列包),主要是因为我将在大量使用 key/value 对的词典上使用以下逻辑。我不确定这是否可以在没有 key/value 对的情况下在 R 列表中轻松完成。

another_dict = {}
multiples_dict = {}
adj_title = 'Dt'
for outer_key,outer_value in titles.iteritems():
        for exact in outer_value['exact']:
            if exact == adj_title:
               another_dict[actual_title] = outer_key
               multiples_dict[outer_key] = multiples
        for partial in inner_dict['partial']:
            if partial in adj_title:
               another_dict[actual_title] = outer_key
               multiples_dict[outer_key] = multiples

提前致谢。

你需要去掉每对 key/value 周围的括号,如:

library(hash)
titles = hash("NAME" = list("exact"=list('NAME'),"partial"=list()),
          "Dt" = list("exact"=list('Dt'),"partial"=list()),
          "CC" = list("exact"=list(),"partial"=list()))

当您包含括号 hash( (a=b) ) 时,对象 (a=b) 将作为表达式而不是 key/value 对

传递