gpt4 book ai didi

r - 仅从向量中选择整数

转载 作者:行者123 更新时间:2023-12-04 16:59:37 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to check if a number is a positive natural number?

(5 个回答)


6年前关闭。




我有一个关于从 R 中的向量中选择特定值的问题。更具体地说,我想从我的数据集中的给定变量中选择所有整数值(我想使用这些来对我的数据进行子集)。下面是一个例子:

x <- seq(0,10,1/3)

现在我想用整数选择向量 x 中的所有观察值。我的第一个想法是使用 is.integer 命令,但这不起作用。我使用以下方法找到了解决方法:
> x==as.integer(x)
[1] TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE
FALSE TRUE FALSE FALSE TRUE
[17] FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE
FALSE TRUE FALSE FALSE TRUE

现在我可以简单地输入
> which(x==as.integer(x))
[1] 1 4 7 10 13 16 19 22 25 28 31

我得到了预期的结果(我可以使用这个向量来设置我的数据集的子集)。但是没有更直接的方法来选择整数值吗?

最佳答案

这是使用模运算符的建议的反例:

> x <-  seq(1/3, 9 , 1/3)
> x[!x%%1]
[1] 1 3 4 9
> x
[1] 0.3333333 0.6666667 1.0000000 1.3333333 1.6666667 2.0000000
[7] 2.3333333 2.6666667 3.0000000 3.3333333 3.6666667 4.0000000
[13] 4.3333333 4.6666667 5.0000000 5.3333333 5.6666667 6.0000000
[19] 6.3333333 6.6666667 7.0000000 7.3333333 7.6666667 8.0000000
[25] 8.3333333 8.6666667 9.0000000

关于为什么不假设整数将可靠地从对数值的典型操作产生的 SO 上有许多类似问题的例子。规范警告是 R-FAQ 7.31。在我的设备上,这可以在 R 帮助页面中找到: 7.31 Why doesn't R think these numbers are equal? .更可靠的方法是:
> x[ abs(x-round(x) ) < 0.00000001 ]
[1] 1 2 3 4 5 6 7 8 9

关于r - 仅从向量中选择整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30476671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com