按整数值分割浮点数向量

时间:2017-07-03 23:49:50

标签: r vector

假设我有一个类似下面的矢量

> head(samp)
[1] 1959.000 1959.083 1959.167 1959.250 1959.333 1959.417
> tail(samp)
[1] 1997.500 1997.583 1997.667 1997.750 1997.833 1997.917

此向量表示我正在构建的图的x值。我希望将每年的价值叠加在我的情节之上。为此,我认为我必须将此samp向量除以整数值。

最简单的方法是什么?

我提出的唯一解决方案是使用

来完成所有年份的序列
years <- seq(floor(min(samp)),
             ceiling(max(samp)))

然后循环查看年份并编制索引以查找属于每年的值。尽管如此,感觉应该有一些方法可以比明确的循环更容易地逐年削减我的矢量。

1 个答案:

答案 0 :(得分:2)

我只是回答我的评论: 您正在寻找split函数(请参阅?split查看一些示例) 它将您的向量和相同长度的因子(数字可以)的向量作为参数,定义如何对值进行分组。 split的输出是一个列表。

samp = c(1959.000 ,1959.083 ,1959.167 ,1959.250, 1960.000 ,1960.083)
split(samp, floor(samp))
#### $`1959`
#### [1] 1959.000 1959.083 1959.167 1959.250
#### 
#### $`1960`
#### [1] 1960.000 1960.083