【问题标题】:backticks in variable name变量名中的反引号
【发布时间】:2013-10-03 21:16:04
【问题描述】:

如果我创建一个名称中带有反引号的变量,有没有办法使用反引号语法访问它?

assign("a`b", 5)
get("a`b")
#[1] 5

# The attempts below all end in various errors
# `a`b`
# `a``b`
# `a\\`b`

【问题讨论】:

  • 您为什么要尝试使用反引号来访问它?引号有什么问题,您确定没有其他方法可以解决这个问题吗?
  • 我觉得答案可以用一个词来概括——方便
  • 不管你遇到这样的名字,你可以把它分配给一个变量,然后get(.)那个变量
  • 谢谢,如 OP 中所示,我知道该选项
  • 我更好奇为什么你会遇到带有反引号的名字。如果这只是出于好奇,我并没有抱怨,但我并没有真正看到这在实际意义上会如何出现。

标签: r syntax


【解决方案1】:

您的所有尝试都以各种错误结束,因为?Quotes 表示您只能转义(包含)表中列出的字符;而"`" 不在该表中。

您可以使用十六进制、八进制等表示 "`"

> `a\x60b`  # hex
[1] 5
> `a\140b`  # octal
[1] 5

【讨论】:

  • 但是如果您先验不知道列名中的反引号在哪里,该怎么办?运行 gsub('','\x60',colnames)` 就足够了吗?
  • 链接的帮助版本是针对 R-devel 的,实际上确实包含反引号作为可转义字符,所以我想这意味着一个简单的转义很快就会开始工作。
猜你喜欢
  • 2017-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 2012-06-24
  • 2018-01-17
相关资源
最近更新 更多