2016-07-28 2 views
0

Rでは、365の非負整数のベクトルがあるとします。これから、2015/1/1から2015/12/31までの日付のベクトルを生成したいと思います。新しいベクトルにkが表示され、kが最初のベクトルの対応する番号になります。つまり、kは、最初のベクトルの要素iで、日付は年のi番目です。例えば別のベクトルによって決まるアイテムの種類ごとの番号を持つベクトルを作成する

、最初のベクターは、第2のベクターは

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

なければならない

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

であれば全体として、この第二のベクターを作成するのではなく、行によって行に方法はあります? (私は確かにそれが行ごと行う方法を見つけ出すことができます。)

+0

とデータフレームの行を繰り返す:http://stackoverflow.com/q/2894775/ – Frank

答えて

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" 
関連する問題