【发布时间】:2015-01-30 22:20:17
【问题描述】:
在 R 中,get(s) 函数检索其名称存储在字符变量(向量)s 中的符号的值,例如
X <- 10
r <- "XVI"
s <- substr(r,1,1) ## "X"
get(s) ## 10
获取罗马数字r 的第一个符号并将其转换为等效整数。
尽管花了一些时间翻阅 R-Python 字典并在谷歌上搜索“元编程”、“语言编程”、“符号”、“字符串”等各种组合,但我什么也没想到。 (我是一个非常有经验的 R 用户和一个新手 Python 用户。)
(我知道上面的例子是一个(非常!)糟糕的解决问题的方法。我对这个问题的一般答案感兴趣,而不是专门将罗马数字转换为整数......)
【问题讨论】:
-
请注意,如果您要进行罗马数字的转换,最好有一本字典
r={'M':1000,'D':500,'C':100,'L':50,'X':10,'V':5,'I':1},然后只使用r['X']。 -
是的,我确实知道...谢谢。 (尽管有一个字典的 ordered 类似物也很有用,以便能够确保按值顺序进行迭代......)
-
为什么要这样做?通常有更好的方法... :)
-
按顺序排列的字典/迭代的类似物,还是原始符号引用问题?