Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 创建向量,每种类型的项目数量由另一个向量确定_R_Vector - Fatal编程技术网

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

R 创建向量,每种类型的项目数量由另一个向量确定,r,vector,R,Vector,在R中,假设我有一个365个非负整数的向量。由此,我想生成2015/1/1和2015/12/31之间的日期向量。一天将在新向量中列出k次,其中k是第一个向量中的对应数字。也就是说,k是第一个向量的元素i,其中日期是一年中的第天 例如,如果第一个向量是 c(1, 0, 2, ..., 2) 那么第二个向量应该是 c(2015/1/1, 2015/1/3, 2015/1/3, ..., 2015/12/31, 2015/12/31) 有没有办法把第二个向量作为一个整体来创建,而不是一行一行地创建

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

例如,如果第一个向量是

c(1, 0, 2, ..., 2)
那么第二个向量应该是

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

有没有办法把第二个向量作为一个整体来创建,而不是一行一行地创建?(我当然可以一行一行地想办法。)

我们可以使用
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')
结果

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"

我们可以使用
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')
结果

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"

对于重复数据框的行:对于重复数据框的行: