R编码ASCII反引号

时间:2016-07-13 13:29:29

标签: r encoding ascii quote backticks

我的名单上有以下反引号。之前的名单没有这种反复推动。

$`1KG_1_14106394`
[1] "PRDM2"

$`1KG_20_16729654`
[1] "OTOR"

我发现这是一个ASCII重音符号'并阅读编码类型的R页面。但该怎么办呢?我不清楚这是否会影响某些功能(例如匹配列表名称)还是可以保留原样?

编码帮助页面:https://stat.ethz.ch/R-manual/R-devel/library/base/html/Encoding.html

谢谢!

1 个答案:

答案 0 :(得分:3)

我的理解(我可能是错的)是反引号只是一种逃避列表名称的方法,否则如果不进行转义则无法使用。使用反引号来引用列表名称的一个示例是名称包含空格的情况:

lst <- list(1, 2, 3)
names(lst) <- c("one", "after one", "two")

如果要引用包含数字2的列表元素,可以使用以下方法执行此操作:

lst[["after one"]]

但是如果你想使用美元符号表示法,你需要使用反引号:

lst$`after one`

<强>更新

我只是在SO上搜索,发现this post讨论了与你类似的问题。每当变量名称被禁止时,变量名称的反引号是必要的。空格是一个例子,但使用保留关键字作为变量名也是如此。

if <- 3     # forbidden because if is a keyword
`if` <- 3   # allowed, because we use backticks

在您的情况下:

您的列表中有一个名称​​以开头的元素和一个数字。 R中变量名的规则非常宽松,但它们不能以数字开头,因此:

1KG_1_14106394   <- 3  # fails, variable name starts with a number
KG_1_14106394    <- 3  # allowed, starts with a letter
`1KG_1_14106394` <- 3  # also allowed, since escaped in backticks