首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何引用集合对象的边界?

如何引用集合对象的边界?
EN

Stack Overflow用户
提问于 2020-04-20 10:04:34
回答 1查看 32关注 0票数 1

我正在R (Documents这里)中处理R包中的interval对象。这些对象似乎被表示为列表,但我在操作它们的元素时遇到了困难。下面是一个区间及其结构和类的示例。所创建的对象为"interval"类,其结构表明它是一种包含区间边界点的列表类型,它在边界处的闭包的逻辑值,以及表示它是实数间隔的属性。

代码语言:javascript
复制
#Create and print an interval
INTERVAL <- sets::interval(l = 3, r = 9, bounds = 'closed');
INTERVAL;
[3, 9]

#Show class
class(INTERVAL);
[1] "interval"

#Show structure
str(INTERVAL);
List of 1
 $ :List of 4
  ..$ l : num 3
  ..$ r : num 9
  ..$ lc: logi TRUE
  ..$ rc: logi TRUE
 - attr(*, "domain")= chr "R"

#Extract boundary values
min(INTERVAL);
[1] 3

max(INTERVAL);
[1] 9

目前,我可以使用上面的命令提取边界值,但是一旦它们已经创建,我就不能重新分配它们。我已经尝试引用列表中的值。可以使用来自sets包的set操作来接受集合的联合或交叉,所以我可以这样做,但是我希望能够直接修改对象而不执行set操作。

我的问题:,如何从上面的对象INTERVAL引用一个边值?用另一个值来代替它的边界,最简单的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-20 10:16:59

你可以试试这种方式,它的方式有点麻烦,但我希望这会有所帮助。我不确定你是否想做这样的作业,你可能需要再详细说明一下。我可能完全误解了你。请让我知道。

在这里使用unclass获取每个元素并在给定对象中赋值。如果取消类,则可以分别访问每个列表组件,然后对其进行编辑。

代码语言:javascript
复制
INTERVAL <- sets::interval(l = 3, r = 9, bounds = 'closed');
intval <- unclass(INTERVAL)
intval[[1]]$l <- 0
class(intval) <- 'interval'

输出:

代码语言:javascript
复制
   # > print(intval)
   # [0, 9]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61319816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档