舍入错误会在R中产生奇怪的子集化结果

时间:2013-07-09 12:39:57

标签: r subset

我试图将矢量分成两半(并获得下半部分)

为什么这不起作用?在单独评估所有单个零件时,它们会产生正确的结果,但实际结果并非我的预期:

data <- 1:11    
> length(data)
[1] 11
> ((length(data) / 2)+1)
[1] 6.5
> data[((length(data) / 2)+1):length(data)]  # same as: data[6.5:11]
[1]  6  7  8  9 10

虽然我期待:

[1] 6 7 8 9 10 11

我猜floor是一个解决方案,但这仍然让我困惑:它会从6或7开始,但至少会继续到11,但它不会?

1 个答案:

答案 0 :(得分:2)

您是否检查了((length(data) / 2)+1):length(data)实际上是什么?

> data <- 1:11  
> ((length(data) / 2)+1):length(data)
[1]  6.5  7.5  8.5  9.5 10.5