Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析R中的对象集合_R_Collections - Fatal编程技术网

解析R中的对象集合

解析R中的对象集合,r,collections,R,Collections,在使用R编程语言时,我试图从对象集合中解析出对象。下面的代码示例显示集合中有数据。但是,我不知道如何提取和存储单个对象的数据 以下是运行的完整代码示例: MyNewClass <- setRefClass( "MyNewClass", fields = list( team = "character", player = "character" ) ) Output <- setRefClass( "Output", fields = list(myVar = "d

在使用R编程语言时,我试图从对象集合中解析出对象。下面的代码示例显示集合中有数据。但是,我不知道如何提取和存储单个对象的数据

以下是运行的完整代码示例:

MyNewClass <- setRefClass(
"MyNewClass", fields  = list( team   = "character", player = "character" )
)

Output <- setRefClass(
  "Output",
  fields  = list(myVar = "data.frame"),
  methods = list(

    setData = function(teamNames,participants) {
      lenTitles    = length(teamNames)
      print(lenTitles)
      lenDesc      = length(participants)
      myCollection<-c()
      for(i in 1:lenTitles) {
        myobj <- structure(list(title = teamNames[i], 
                                description = participants[i]), class = "myclass")
        myNewClass        <- MyNewClass$new()
        myNewClass$team   <- teamNames[i];
        myNewClass$player <- participants[i];
        myCollection <- c(myCollection, myNewClass)
      }
      print("** Collection Data **")
      print(myCollection)           # This works

      print("** Single Object Property **")
      print(myCollection[1]$team)   # This does not work.
    }
  )
)

MyClass <- setRefClass(
  "MyClass",
  fields  = list(myVar = "numeric"),
  methods = list(
    myInitializer = function() {
      teamNames       <- c("A Team", "B Team")
      participants    <- c("Aaron Atkinson", "Barbara Bellemont")
      output<-Output$new()
      output$setData(teamNames, participants)
    }
  )
)

myObject<- MyClass$new(myVar = 1)
myObject$myInitializer()

谢谢您的建议。

使用双括号访问单个列表元素。与

print("** Single Object Property **")
      print(myCollection[[1]]$team)   # This works
您将获得:

[1] "** Single Object Property **"
[1] "A Team"
解释 据

对于列表,通常使用[[选择任何单个元素,而[返回所选元素的列表


另请参见。

亲爱的@CyrusMohammadian和所有可能对该问题投了否决票的其他人,OP在这里明确指出,这是一个完整的代码示例,它确实在运行。我能够通过将代码片段复制到R来重现该问题。因此,没有理由抱怨缺少数据来重现该问题或对Q投了否决票。我发现这是一个写得很好的Q,应该投票表决。虽然我必须承认标题有点误导,因为它使用了一些非R术语。更好的方法可能是访问R中的列表元素。@Uwe,我得到了更正,但我没有投票反对,也没有因为缺乏支持而投票反对data@CyrusMohammadian谢谢你的积极反应。看来有些用户当他们发现负面评论时,我们很快就投了反对票。不幸的是,我没有办法告诉他们应该重新审视自己的投票。所以,反对票永远不会消失。@Uwe感谢你指出这一点,顺便说一句,这是真的,我自己有时也会为此感到内疚,特别是在浏览大量帖子时。我不记得我是否有过这样的经历即使是先投反对票,然后下意识地或有意识地发表评论,或者有人看到我的评论,然后投反对票——我想人们会把别人的行为当作启发,这并不好,但毕竟我们是人。Uwe和Cyrus……我真的很感谢你抽出时间来讨论这个问题。感谢你为保持这个论坛的成功所做的努力reat one.Uwe,非常感谢。我花了很多时间试图解决这个问题,但没有成功,我已经尽了最大努力搜索了web。感谢您突出显示文档。现在您指出了解决方案。我是R的新手。这是一个很大的帮助。
[1] "** Single Object Property **"
[1] "A Team"