R语法|变量前切片?(例如(1:3)[x])

  • 本文关键字:语法 例如 变量 切片 r
  • 更新时间 :
  • 英文 :


查找有关此R语法的信息时遇到问题。一个例子是:

> x <- 1:10
> (1:3)[ x ]
[1]  1  2  3 NA NA NA NA NA NA NA

你知道这叫什么吗?在哪些用例中它是有用的?我也很好奇这种语法的隐含操作。来自python,我不确定是否有类似的操作,在变量之前有一个slice/range。

:并不是真正的"切片";这是seq()的快捷方式。所以1:3seq(1,3)是一样的。这与任何其他向量的行为一样。因此,您可以使用[]对该向量进行索引。如果传递一个向量中不存在的索引,则得到NA。所以

(1:3)[ x ]

基本上与相同

c(1, 2, 3)[ c(1,2,3,4,5,6,7,8,9,10) ]

您只是在按索引对向量进行子集设置。就像

z <- c(5,10,15,20)
z[c(2,4)]
# [1] 10 20

返回第2个和第4个元素。

您在示例中看到的值并非来自x。考虑

x <- c(1,2,3)
(100:91)[x]
# [1] 100  99  98

您可以看到这些值不是来自x,而是来自序列。x只是用于索引。

相关内容

最新更新