在R中切片一个向量会产生奇怪的输出
我正在学习列表访问在R中是如何工作的。上面的第二个例子看起来很奇怪。有人能解释一下这种模式是如何运作的吗 向量数学 R允许将向量视为单个数字。这里有一个很好的向量数学教程。我打赌你已经知道这一点,但在这种情况下,配置只是有点不寻常。您的测试用例基本上向向量1:5添加三(1+2),然后索引 测试:在R中切片一个向量会产生奇怪的输出,r,R,我正在学习列表访问在R中是如何工作的。上面的第二个例子看起来很奇怪。有人能解释一下这种模式是如何运作的吗 向量数学 R允许将向量视为单个数字。这里有一个很好的向量数学教程。我打赌你已经知道这一点,但在这种情况下,配置只是有点不寻常。您的测试用例基本上向向量1:5添加三(1+2),然后索引 测试: >(1:10)[1+1:5+2]==(1:10)[1:5+3] [1] 真的向量数学 R允许将向量视为单个数字。这里有一个很好的向量数学教程。我打赌你已经知道这一点,但在这种情况下,配置只是有点不寻常。
>(1:10)[1+1:5+2]==(1:10)[1:5+3]
[1] 真的
向量数学
R允许将向量视为单个数字。这里有一个很好的向量数学教程。我打赌你已经知道这一点,但在这种情况下,配置只是有点不寻常。您的测试用例基本上向向量1:5添加三(1+2),然后索引
测试:
>(1:10)[1+1:5+2]==(1:10)[1:5+3]
[1] 真的
1+3=4,2+3=5。那么,在1:5的每一个值上加三indexing@W.Dodge那么为什么(1:10)[10+1:5+1]
给出NA-NA-NA
呢?理想情况下,它应该是索引1:5
并添加11
,因为您已将11添加到1:5,这将生成12,13,14,15,16。然后根据超出范围的五个值对1:10进行索引,得到五个NAs。1+3=4,2+3=5。那么,在1:5的每一个值上加三indexing@W.Dodge那么为什么(1:10)[10+1:5+1]
给出NA-NA-NA
呢?理想情况下,它应该是索引1:5
并添加11
,因为您已将11添加到1:5,这将生成12,13,14,15,16。然后根据超出范围的五个值索引1:10,得到五个NAs。
(1:10)[2:5]
# [1] 2 3 4 5
(1:10)[2 + 1:5 + 1]
# [1] 4 5 6 7 8
(1:10)[(2 + 1):(5 + 1)]
# [1] 3 4 5 6
(1:10)[10 + 1:5 + 1]
# [1] NA NA NA NA NA