如何让R语言识别并读取以数字开头的变量?
解决R中识别以数字开头变量的技巧
R的默认命名规则不允许变量名以数字开头(即便包含点号,数字开头仍是核心问题),所以直接调用0700.HK这类变量会触发语法错误。以下是几个实用的规避技巧:
从源头自定义合法变量名
调用getSymbols时设置auto.assign = FALSE,手动将返回的XTS对象赋值给符合R命名规则的变量,彻底避免特殊变量名的麻烦:hk_0700 <- getSymbols("0700.hk", auto.assign = FALSE)之后直接用
View(hk_0700)就能正常查看,后续操作也无需额外处理。用
get()函数间接调用变量
如果已经生成了0700.HK这类变量且不想改名,可通过get()函数以字符串形式获取变量,无需加反引号:View(get("0700.HK"))列表访问改用字符串索引
针对.blotter$portfolio$symbols$700.HK$txn这类列表访问场景,除了反引号,还能用双括号加字符串索引的方式访问:.blotter$portfolio$symbols[["700.HK"]]$txn这种写法更灵活,尤其适合批量处理不同资产代码时,直接用字符串变量代入索引。
需要说明的是:R的语法解析器本身不支持数字开头的标识符作为直接变量名,不存在"让R直接识别"这类变量的语法级技巧,上述方法都是通过间接方式遵循R的语法规则来解决问题。
内容的提问来源于stack exchange,提问作者Rene Chan
相关产品推荐
相关产品推荐

