在 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'

当我尝试用列表替换hash时,它运行良好。但是,我使用键/值对(哈希包)主要是因为我必须处理内部字典,我的意思是根据外部字典键更改内部字典值。知道我为什么会犯这个错误吗?或者其他方法。

更新以下内容以使问题更加清楚。

为了进一步解释,我将其创建为键/值对(哈希包),主要是因为我将在大量使用键/值配对的字典上使用以下逻辑。我不确定在没有键/值对的情况下,这是否可以在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

提前谢谢。

您需要去掉每个键/值对周围的parens,如下所示:

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

当包含parens hash( (a=b) )时,对象(a=b)将作为表达式而不是键/值对传递

相关内容

最新更新