2017-07-03 87 views
2

假设我有一个像下面分裂向量

> 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

'floor(samp)'? – G5W

+1

'split(samp,floor(samp))'? – agenis

+1

哦..哇。这非常简单。我的道歉,谢谢! –

回答

2

我只是做我的评论到一个答案: 您正在寻找split功能(参见?split看看一些例子) 它需要作为参数的载体和要素的相同长度的向量(数值是OK )定义如何对这些值进行分组。 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