2017-02-08 6 views
3

Rの新しいbとして実際に役立つことがあります.1000(1000)行以上の列データがあります。新しい方法で列を新しいデータフレームに変更するR

a <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 

は、私は、ニューラルネットワークを構築するためにデータを使用したい、と私はそれが(データフレームの形で)次のようになりたいと思います:任意の簡単な方法があります

x1 x2 x3 x4 y 
1 2 3 4 5 
2 3 4 5 6 
3 4 5 6 7 
4 5 6 7 8 
5 6 7 8 9 
6 7 8 9 10 

Iそれについて行くことができますか、私は最後までサブセットにする必要がありますか?どんな助け?私は、我々は

do.call(cbind, lapply(head(a,5), function(i) i:(i+5))) 

を使用することができます

答えて

2

ですパッケージ

library(wavethresh) 
ncol <- 5 
sapply(0:5, function(x) guyrot(a,-x)[1:6]) 
#  [,1] [,2] [,3] [,4] [,5] [,6] 
#[1,] 1 2 3 4 5 6 
#[2,] 2 3 4 5 6 7 
#[3,] 3 4 5 6 7 8 
#[4,] 4 5 6 7 8 9 
#[5,] 5 6 7 8 9 10 
#[6,] 6 7 8 9 10 1 
+0

なぜdownvote!?? –

+0

は私の関数の中でそれを使っていました! :) @akrun –

+0

@Desdejeiまた、関数コードを見てください.Itは非常に直感的で理解しやすいです! –

2

おかげで、それのコードは理解のためのいくつかのコメントを持つことができ喜んでいるだろうか、別のオプションは、別のオプションがwavethreshからguyrot()あるembed

as.data.frame(embed(a, 5)[,5:1]) 
# V1 V2 V3 V4 V5 
#1 1 2 3 4 5 
#2 2 3 4 5 6 
#3 3 4 5 6 7 
#4 4 5 6 7 8 
#5 5 6 7 8 9 
#6 6 7 8 9 10 
+1

または 'data.frame(lapply(head(a、5)、function(i)i:(i + 5)))'を実行してdata.frameを生成します。多分、 'setNames'を投げて良い指標にしてください。 – lmo

関連する問題