什么是;at";在R里写上“代表”的符号?

什么是;at";在R里写上“代表”的符号?,r,oop,s4,R,Oop,S4,我想知道R中“@”(at sign)的功能。 让我们说: 在下面的示例中,如果我调用perf1@x.values它开始显示所有x.value。但是我无法通过调用perf@x.values[2] > str(perf1) Formal class 'performance' [package "ROCR"] with 6 slots ..@ x.name : chr "False positive rate" ..@ y.name : chr "True pos

我想知道R中“@”(at sign)的功能。
让我们说:
在下面的示例中,如果我调用
perf1@x.values
它开始显示所有
x.value
。但是我无法通过调用
perf@x.values[2] 

> str(perf1)
Formal class 'performance' [package "ROCR"] with 6 slots
  ..@ x.name      : chr "False positive rate"
  ..@ y.name      : chr "True positive rate"
  ..@ alpha.name  : chr "Cutoff"
  ..@ x.values    :List of 1
  .. ..$ : num [1:3966] 0 0.0005 0.001 0.0015 0.0015 0.002 0.0025 0.0025 0.003 0.0035 ...
  ..@ y.values    :List of 1
  .. ..$ : num [1:3966] 0e+00 0e+00 0e+00 0e+00 5e-04 5e-04 5e-04 1e-03 1e-03 1e-03 ...
  ..@ alpha.values:List of 1
  .. ..$ : num [1:3966] Inf 0.996 0.993 0.986 0.98 ...
我想知道R中“@”符号的用法是什么?
如何使用@sign调用某些值?
感谢

对象是带有节点或叶子的列表(从技术上讲是调用),操作员可以访问这些节点或叶子,就像使用S3对象访问一样

看看:

str( perf1@x.name )
str( perf1@y.name )
请注意,这些可能包含普通的S3列表,如下所示:

str( perf1 @ x.values) # a list
str( perf1 @ x.values[[1]] ) # a numeric vector
perf1 @ x.values[[1]][1]   # the first value in `x.values`
这样做被认为是糟糕的形式,因为S4对象的作者应该为您配备访问器函数,允许您获取任何有用的内容。

对象是带有节点或叶子的列表(从技术上讲是调用),操作员可以访问这些节点或叶子,就像使用S3对象访问这些对象一样

看看:

str( perf1@x.name )
str( perf1@y.name )
请注意,这些可能包含普通的S3列表,如下所示:

str( perf1 @ x.values) # a list
str( perf1 @ x.values[[1]] ) # a numeric vector
perf1 @ x.values[[1]][1]   # the first value in `x.values`

这样做被认为是一种糟糕的形式,因为S4对象的作者应该为您配备访问器函数,允许您获取任何有用的东西。

这真的需要正则表达式标记吗?
perf@x.values
是1的
列表,其中包含该向量。你想做
perf@x.values[[1]][2]
。这真的需要正则表达式标记吗?
perf@x.values
是1的
列表,其中包含该向量。你想做
perf@x.values[[1]][2]
。那不是我的编辑。我只添加了文档的链接。因为我花了一段时间才找到相关的页面(S4文档比较分散),所以我认为这会很有用。好吧,看看修订版,显然是我编辑的。当我更新你的问题时,我确实在键盘上掉了一个羊角面包,所以要么是这个,要么是我的胖手指造成了打字错误。好的。谢谢你的其他编辑。使答案更有用。那不是我的编辑。我只添加了文档的链接。因为我花了一段时间才找到相关的页面(S4文档比较分散),所以我认为这会很有用。好吧,看看修订版,显然是我编辑的。当我更新你的问题时,我确实在键盘上掉了一个羊角面包,所以要么是这个,要么是我的胖手指造成了打字错误。好的。谢谢你的其他编辑。使答案更有用。