我正在尝试将一段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)
将作为表达式而不是键/值对传递