【问题标题】:R - Subsetting confusionR - 子集混淆
【发布时间】:2016-08-13 16:51:14
【问题描述】:

我在一个关于子集的示例中看到了以下内容,但我不明白,因为我对 R 还是很陌生。

x <- c(1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9)
x[c(TRUE, TRUE, FALSE, FALSE)]
[1] 1.1 2.2 5.5 6.6 9.9

我了解数字向量的创建。但我不明白结果是如何或为什么通过使用布尔值进行子集生成的。

【问题讨论】:

  • 回收的好解释here

标签: r


【解决方案1】:

这显然是一个回收问题。逻辑 vector 被循环到向量的末尾,并在找到 TRUE 的任何地方返回值。为了说明它使用rep创建一个逻辑向量

i1 <- rep(c(TRUE, TRUE, FALSE, FALSE), length.out=9)
i1
#[1]  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE

并子集vector

x[i1]
#[1] 1.1 2.2 5.5 6.6 9.9

回收也做同样的事情,即重复逻辑元素的向量,直到它到达向量的末尾。

【讨论】:

    猜你喜欢
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2018-02-01
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    相关资源
    最近更新 更多