首页 > 解决方案 > R S3如何获得

问题描述

我的问题是:从传递给函数的参数中获取对象属性的最佳方法是什么。例如,下面我展示了我的代码中的示例。

  tsdScene <- function(...){
  scene <- list(..., sceneLength = length(list(...)), tsdList = list(...))
  class(scene) <- "tsdScene" 
  return(scene)
  }

因此,作为一个 tsdList,我将所有对象都传递给一个函数(在本例中,它是来自另一个类的对象 s1 和对象 s2)。现在当我使用:

test <- tsdScene(s1,s2)
test$tsdList

我得到作为回报:

$freq
[1] 12

但是当我尝试使用

test$tsdList$freq

我得到NULL。这是我的主要问题。我怎样才能得到这个 $freq 参数?我会感谢任何提示。

标签: r

解决方案


如果您tsdScene使用两个参数调用,您将获得一个test$tsdList包含两个成员的列表。

也许你想要test$tsdList[[1]]$freqtest$tsdList[[2]]$freq.

s1 <- 1
s2 <- list(freq = 12)
test <- tsdScene(s1, s2)
test$tsdList
#[[1]]
#[1] 1
#
#[[2]]
#[[2]]$freq
#[1] 12


test$tsdList[[2]]
#$freq
#[1] 12

所以你可以freq访问

test$tsdList[[2]]$freq
#[1] 12

推荐阅读