[英]Selecting at most n elements in R
这似乎是一个非常简单的问题,但我无法弄清楚。
如何从R中的列表中选择最多n个元素?
> x = 1:3
> x[1:5]
[1] 1 2 3 NA NA
我想要的是x[1:5]
返回[1] 1 2 3
。
我尝试的解决方案是
x[!is.na(x[1:3])]
仍然不起作用,因为
> x[!is.na(x[1:5])]
[1] 1 2 3 # correct
> x[!is.na(x[1:2])]
[1] 1 2 3 # where's that coming from?
为了确保您不索引向量的结尾,您可以执行以下操作:
x[1:(min(5, length(x)))]
x[!is.na(x[1:2])]
[1] 1 2 3 # where's that coming from?
那是来自回收 。
is.na(X)
返回长度等于其参数X
的逻辑向量。 由于没有NA
因此此向量均为TRUE
。 这些值(再次,所有TRUE
)被再循环到的长度x
(在x
的托架的外侧, x[ . ]
)
至于从x中进行选择,不要超过x的长度,请使用head
和tail
作为注释中提到的@Ananda。
x <- 1:6
head(x, 4)
# [1] 1 2 3 4
head(x, 20)
# [1] 1 2 3 4 5 6
tail(x, 4)
# [1] 3 4 5 6
tail(x, 20)
# [1] 1 2 3 4 5 6
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.