2016-04-29 20 views
0

我有一個值的字符串;我想制定一個新的對象使用複製

a <- 1:159 

,我想制定一個新的對象,其中首先從80寫入一個序列:159和第二79:158和第三78:157 .....到1:80。我希望這個新對象擁有6400個元素。

我試圖用

for (i in rep(1:80,each=80)){a[i] <- ((81-i):(160-i))} 

這是行不通的。

+0

一個好的開始位置,如果你知道最後一個對象將是一個長度爲6400的整數向量,你應該提前創建它:'myVector < - integer(6400)'。然後你可以填寫它。這將節省很多努力來反覆複製一個正在增長的對象。 – lmo

+0

'unlist(lapply(80:1,function(x){seq(x,length.out = 80)}))',也許 – alistaire

回答

4

你可以使用

x <- embed(a, 80) 

列將對應於你想

x[,1] == 80:159 
x[,2] == 79:158 
... 
x[,80] == 1:80 

length(x) 
# 6400 

什麼,如果你只是想它作爲一個載體,而不是矩陣,只要做

x <- as.vector(embed(a, 80)) 
+0

非常感謝你的工作。你是如此聰明的人。 –