2

我正要问另一个问题所以这个问题突然出现在我的脑海中。我们如何定义一个具有奇怪名称的对象。例如,假设我们想调用一个对象“test^#”。如果我想定义它,我会使用“”:

"test^#" <- 10

现在的问题是如何调用这个对象?如果我们再次使用“”,那么 R 将其视为字符串而不是对象的名称。虽然我看到了能够在对象名称中使用符号的实际应用,但在这一点上,出于我的好奇心,这更像是一个问题。

谢谢,

4

1 回答 1

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
于 2012-07-24T15:37:32.917 回答