创建具有由另一个向量确定的每种类型的项目的数量的向量

时间:2016-07-28 20:46:53

标签: r vector

在R中,假设我有365个非负整数的向量。由此,我想生成2015/1/1和2015/12/31之间的日期向量。一天将在新向量中列出k次,其中k是第一个向量中的对应数字。即k是第一个向量的元素i,其中日期是一年中的i天。

例如,如果第一个向量是

c(1, 0, 2, ..., 2)

那么第二个矢量应该是

c(2015/1/1, 2015/1/3, 2015/1/3, ..., 2015/12/31, 2015/12/31)

有没有办法创建第二个向量作为一个整体,而不是逐行? (我当然可以弄清楚如何逐行。)

1 个答案:

答案 0 :(得分:3)

我们可以使用rep函数以及seq.Date来执行此操作:

创建数据

set.seed(123) 
kvec <- sample(0:10, 365, replace = T) #create the nonnegative integers
#create sequence of dates
date_vec <- seq.Date(from = as.Date('2015-01-01'), to = as.Date('2015-12-31'), by = 'day')

使用rep()

#let rep() do the work
k_date_vec <- rep(date_vec, times = kvec)

<强>结果

head(kvec)
[1]  3  8  4  9 10  0
head(k_date_vec)
[1] "2015-01-01" "2015-01-01" "2015-01-01" "2015-01-02" "2015-01-02" "2015-01-02"