創建多個新的矢量我有一個向量d和創建從d這樣的新載體,其新矢量包含d的每第m個元素:從原始矢量
v<-d[seq(1,length(d),m)]
下一步我想以計算總和
s<-sum(abs(v[1:(length(v)-1)]-v[2:length(v)]))
如果我用很少的m值做這件事,這將是沒有問題的。但是,如果我的m值超過50,那麼一個接一個地執行此操作將不會是一種理想的方式。我想概括一下創建v的方式與m的不同值相對應。以下是我想出了代碼:
d1<-rnorm(20)
m<-seq(1,10,1)
v<-matrix(rep(0,length(d1)*lenght(m)),nrow=length(m))
for (i in 1:length(m)){v[i,]<-d1[seq(1,length(d1),m[i])]}
但是當我運行的代碼,以下錯誤出現:
Error in v[i, ] <- d1[seq(1, length(d1), m[i])] :
number of items to replace is not a multiple of replacement length
所以,我想另一種方式:
v<-rep(0,length(d1))
for (i in 1:length(m)){v<-d1[seq(1,length(d1),m[i])]}
但是這個代碼只給出了在m = m [length(m)]處的v的值,而不是與m [1]到m [length(m)]對應的所有向量v。任何人都可以爲我提供一個解決這個問題的函數/方法嗎?
很多感謝
如果您發佈了輸入數據和期望輸出數據的(小而簡化的!)示例,這將有所幫助。 – mmuurr 2014-12-03 01:16:57