我正要问另一个问题,我脑海中浮现出这个问题。我们如何定义具有奇怪名称的对象。例如,假设我们想要调用一个对象“test ^#”。如果我想定义它,我会使用“”:
"test^#" <- 10
现在的问题是如何调用这个对象? 如果我们再次使用“”,则R将其视为字符串而不是对象的名称。 虽然我看到了能够在对象名称中使用符号的实际应用,但在这一点上,这更多的是出于好奇心的问题。
谢谢,
答案 0 :(得分:7)
使用反引号:
"test^#" <- 10
ls()
[1] "test^#"
现在使用它:
`test^#`
[1] 10
您还可以使用反引号来引用具有非标准名称的数据框(或列表)中的列。例如:
iris$`Sepal length` <- iris$Sepal.Length
str(iris)
'data.frame': 150 obs. of 6 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Sepal length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
summary(iris$`Sepal length`)
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.300 5.100 5.800 5.843 6.400 7.900
如果你想要一些非常奇怪的东西,比如在名称中嵌入反引号,那么你可能不得不使用get()
来引用它:
"test^`#" <- 20
get("test^`#")
[1] 20