S3类名:什么是允许的?

时间:2011-10-19 21:33:24

标签: class r

S3类的名称是否有任何限制?例如,名称中是否允许使用空格?我看到数据帧有一类“data.frame”而不是“数据帧”。如果没有正式的限制,是否存在名称中有空格的问题?我只是不会遇到基本模式以外的任何事情,所以我相信那些有更多经验的人会知道。

2 个答案:

答案 0 :(得分:6)

看起来没有很多限制。看看这个怪物:

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

dat <- 55
class(dat) <- "44 !@#$%^&"
plot(dat)

将空格放入类名的的一个原因是它使得直接调用该类的方法变得有点棘手。

plot.44 !@#$%^&(100)   # This doesn't work 

`plot.44 !@#$%^&`(100) # You have to do this instead

答案 1 :(得分:2)

允许空格:

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

不确定在类名中使用特殊字符的其他限制或后果。当然在类名中有空格/特殊字符不是常规的(不仅仅是R,还有其他语言)。我建议避免这种情况。