2016-03-25 8 views
13

Ich versuche zu verstehen, was in Backtick R. doWas machen Backticks in R?

Von dem, was ich sagen kann, ist dies für R. in der ?Quotes Dokumentationsseite erklärt nicht

Zum Beispiel an der R-Konsole:

"[[" 
# [1] "[[" 
`[[` 
# .Primitive("[[") 

Es scheint das Äquivalent zu der Rückkehr zu:

get("[[") 
+0

help ("' ") könnte in der Reihenfolge sein – hrbrmstr

+1

' help ("\' ")' bringt die gleiche doc-Seite wie '?Zitate ", die nicht ganz klar war – Megatron

+0

verpasst, dass in der q. Entschuldigung. aber es ist eine anständige Erklärung dessen, was es tut. – hrbrmstr

Antwort

8

Ein Paar Backticks ist eine Möglichkeit, sich auf Namen oder Kombinationen von Symbolen zu beziehen, die ansonsten reserviert oder illegal sind. Reserviert sind Wörter wie if Teil der Sprache, während illegale nicht-syntaktische Kombinationen wie c a t enthält. Diese beiden Kategorien, reserviert und illegal, werden in der R-Dokumentation als non-syntactic names bezeichnet.

So

`c a t` <- 1 # is valid R 

und

> `+` # is equivalent to typing in a syntactic function name 
function (e1, e2) .Primitive("+") 

Als Kommentator erwähnt, ?Quotes einige Informationen über die Graviszeichen enthält, unter Names and Identifiers:

Identifiers consist of a sequence of letters, digits, the period 
(‘.’) and the underscore. They must not start with a digit nor 
underscore, nor with a period followed by a digit. Reserved words 
are not valid identifiers. 

The definition of a _letter_ depends on the current locale, but 
only ASCII digits are considered to be digits.  

Such identifiers are also known as _syntactic names_ and may be 
used directly in R code. Almost always, other names can be used 
provided they are quoted. The preferred quote is the backtick 
(‘`’), and ‘deparse’ will normally use it, but under many 
circumstances single or double quotes can be used (as a character 
constant will often be converted to a name). One place where 
backticks may be essential is to delimit variable names in 
formulae: see ‘formula’. 

Diese Prosa ist ein wenig schwer analysieren. Was es bedeutet, dass für R ein Token als ein Name zu analysieren, muss es 1) eine Folge von Buchstaben Ziffern, der Punkt und Unterstriche, dass 2) ist kein reserviertes Wort in der Sprache. Andernfalls müssen Backticks verwendet werden, um als Name analysiert zu werden.

Auch ?Reserved check out:

Reserved words outside quotes are always parsed to be references 
    to the objects linked to in the ‘Description’, and hence they are 
    not allowed as syntactic names (see ‘make.names’). They *are* 
    allowed as non-syntactic names, e.g. inside backtick quotes. 

Darüber hinaus hat erweiterte R einige Beispiele dafür, wie Backticks verwendet werden, in expressions, environments und functions.

5

Sie entsprechen wörtliche. Zum Beispiel ... versuchen Sie dies:

df <- data.frame(20a=c(1,2),b=c(3,4)) 

gibt Fehler

df <- data.frame(`20a`=c(1,2),b=c(3,4)) 

nicht Fehler Hier

3

nicht geben eine unvollständige Antwort falsche Vokabular: Backticks R zeigen können, dass Sie Verwenden einer Funktion in einer nicht standardmäßigen Weise. Zum Beispiel, hier ist eine Verwendung von [[, die Liste subsetting Funktion:

temp <- list("a"=1:10, "b"=rnorm(5)) 

Extrakt Element ein, die übliche Art und Weise

temp[[1]] 

Extrakt Element eines mit der [[ Funktion

`[[`(temp,1)