繁体   English   中英

在R中最多选择n个元素

[英]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的长度,请使用headtail作为注释中提到的@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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM