我的名单上有以下反引号。之前的名单没有这种反复推动。
$`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
谢谢!
答案 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