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