2

SOで別の質問をしようとしていたところ、この質問が頭に浮かびました。変な名前のオブジェクトを定義する方法。たとえば、オブジェクトを「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 に答える