我已经生成了以下集合。我怎样才能获得进一步使用的元素?
另外,我该如何删除{}?
> library(sets)
> A<-set("item1","item2","item3")
> A
{"item1", "item2", "item3"}
> A[1]
{} #i would like to have {}
> A[2]
{} #i would like to have "item1"
> A[3]
{} #i would like to have "item2"
其他问题是:
> A1<-set(paste("item",1:3,sep=""))
> A1
{<<character(3)>>} # how can i generate the same result as A?
感谢您的温和回复!
答案 0 :(得分:4)
对于作为数学对象的集合,元素顺序(以及可能的重复)没有区别。谈论集合的“第一”或“第二”或“第三”是“没有意义的”,因此集包的作者没有提供允许您检索索引的子集方法"set"
的元素 - 类对象。
要了解为什么这是一个好的设计决策,直接来自对象对集合的重要数学结构的忠实表示,请检查以下内容:
library(sets)
a <- set("item3", "item3", "item2", "item1")
b <- set("item1", "item2", "item3")
identical(a,b)
# [1] TRUE
如果您坚持使用数字索引提取集合元素, 总是可以执行以下操作:
set(as.character(a)[1])
# {"item1"}
关于你的第二个问题,你可以通过使用非常有用的函数do.call()
得到你所得到的结果:
do.call(set, as.list(paste("item",1:3,sep="")))
# {"item1", "item2", "item3"}