我的列表名称上有以下反引号。以前的列表没有这种反引号。
$`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
谢谢!
我的理解(我可能是错的)是反引号只是转义列表名称的一种手段,否则如果不转义就无法使用。 使用反引号引用列表名称的一个示例是包含空格的名称的情况:
lst <- list(1, 2, 3)
names(lst) <- c("one", "after one", "two")
如果要引用包含数字 2 的列表元素,可以使用以下命令执行此操作:
lst[["after one"]]
但是如果你想使用美元符号符号,你需要使用反引号:
lst$`after one`
更新:
我刚刚在SO上闲逛,发现了这篇文章,它讨论了与您的问题类似的问题。 每当禁止变量名称时,变量名称中的反引号都是必需的。 空格就是一个例子,但使用保留关键字作为变量名称也是如此。
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