2012-06-20 72 views
4

我們試圖在包含值的365 X 1矢量前面放置730個零值。 我從另一個矩陣切出這個向量。因此,行索引號現在不再有幫助和混淆,例如值爲50的向量。 如果我使用零值創建另一個向量或數組,然後使用rbind將它綁定到向量之前,則會產生奇怪的值,因爲混合了行索引號並將其作爲3d元素。在矢量前添加零點

感謝任何想法如何實現,或如何重置行索引號。 best Fabian!

舉例: 這是我與價值觀

pred_mean_temp 
366  -3.0538333 
367  -2.8492875 
368  -3.1645825 
369  -3.5301074 
370  -1.2463058 
371  -1.7036682 
372  -2.0127239 
373  -2.9040319 
.... 

我想添加一個零向量與在它前面的730行向量。 所以它應該看起來像這樣:

1  0 
2  0 
    .... 
731  -3.0538333 
732  -2.8492875 
733  -3.1645825 
    .... 
+0

這聽起來像'代表'功能 – gaussblurinc

回答

5

是這樣的?

# create a vector 
a <- rnorm(730) 
# add the 0 
a <- c(rep(0,730), a) 

然後,你可以做一個矩陣:

m <- cbind(1:length(a), a) 
+0

工作正常!但是,我第一次轉置矢量兩次 –

3

您需要使用c()功能來連接兩個向量。要創建零向量,使用rep()

下面是一個例子:

x <- rnorm(5) 
x <- c(rep(0, 5), x) 
x 
[1] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.1149446 0.3839601 -0.5226029 0.2764657 -0.4225512 
+0

工作正常!不過,我首先要將矢量轉置兩次 –

3

根據你的榜樣,它看起來像你的載體具有matrix類。如果這是一個要求,以下應該工作:

set.seed(1) 

# Create an example 2-column, 500-row matrix 
xx<-matrix(rnorm(1000,-2),ncol=2,dimnames=list(1:500, 
    c("pred_mean_temp","mean_temp"))) 

# Subset 365 rows from one column of the matrix, keeping the subset as a matrix 
xxSub<-xx[50:(50+365-1),"pred_mean_temp",drop=FALSE] 

xxSub[1:3,,drop=FALSE] 
# pred_mean_temp 
# 50  -1.118892 
# 51  -1.601894 
# 52  -2.612026 

# Create a matrix of zeroes and rbind them to the subset matrix 
myMat<-rbind(matrix(rep(0,730)),xxSub) 

# Change the first dimnames component (the row names) of the rbinded matrix 
dimnames(myMat)[[1]]<-seq_len(nrow(myMat)) 

myMat[c(1:2,729:733),,drop=FALSE] 
#  pred_mean_temp 
# 1   0.000000 
# 2   0.000000 
# 729  0.000000 
# 730  0.000000 
# 731  -1.118892 
# 732  -1.601894 
# 733  -2.612026