2011-10-19 36 views
6

S3類的名稱是否有限制?例如,名稱中是否允許有空格?我看到數據框架有一類「data.frame」而不是「數據框架」。如果沒有正式的限制,名稱中是否有空格可能存在問題?我只是沒有遇到基本模式以外的任何事情,所以我確信那些有更多經驗的人會知道。S3類別名稱:什麼是允許的?

回答

6

看起來沒有什麼限制。看看這個怪物:

`plot.44 [email protected]#$%^&` <- function(x) { 
    plot(rnorm(x), pch=16, col="red", 
      main = "But why would you want to do this??") 
} 

dat <- 55 
class(dat) <- "44 [email protected]#$%^&" 
plot(dat) 

原因之一把空間放到一個類的名稱是,它使得它有點棘手直接調用這個類的方法。

plot.44 [email protected]#$%^&(100) # This doesn't work 

`plot.44 [email protected]#$%^&`(100) # You have to do this instead 
+0

只是猜測,但除其他外,我想怪物可能不是所有的便攜式取決於編碼(除了是怪物)。 –

+0

我可以想象這是一些人物的問題。可能不是那些我包括在那裏的,因爲(我剛剛意識到)它們都以某種方式在基本R中使用過! –

+2

一類「π」適用於我 – hadley

2

允許使用空格:

test = 1 
class(test) = c(class(test) , "My Class") 

不清楚其他限制或具有類名稱的特殊字符的後果。當然,在類名中使用空格/特殊字符不是常規的(不僅僅是R,而是其他語言)。我建議避免這種情況。