2016-08-09 8 views
0

900行400列のデータがあります。各2つの列は特定の情報を運びます。 A B C D列があるとしましょう。A列とB列のちょうど終わりにC列とC列を追加したいと思います。例えば別の列の行の最後に観測を追加する


A B C D E F 
3 4 5 6 7 8 
9 10 11 12 13 14 

あなたは2つの新しい列に元dfの奇数と偶数列を積み重ねることによって、新しいdata.frameを作成することができ

Column 1 Column 2 
3   4 
9   10 
5   6 
11   12 
7   8 
13   14 
+0

Fyiの場合は、4つのスペースをインデントしてコードブロックを作成するか、Ctrl + Kキーを押して強調表示できます。 – Frank

+0

あなたがしようとしていることを明確にすることはできますか?行にデータポイントを追加する方法を尋ねていますか? –

+0

はい、行にデータを追加するだけです。 –

答えて

2

に変更します。行列に変換し、oはすべての数値であると仮定すると、

df1 <- data.frame(Column1 = unlist(df[,c(T,F)]), 
        Column2 = unlist(df[,c(F,T)])) 
> df1 
# Column1 Column2 
#A1  3  4 
#A2  9  10 
#C1  5  6 
#C2  11  12 
#E1  7  8 
#E2  13  14 
0

o <- read.table(text='A B C D E F 
3 4 5 6 7 8 
9 10 11 12 13 14', header=TRUE) 

o <- as.matrix(o) 

まず、あなたは実際の列のペアを持っているので、これは3次元配列として考えることができます。私たちは、その場で3Dに作り変えることができます。

dim(o) <- c(2,2,3) 

のでoは次のようになります。

> o 
, , 1 

    [,1] [,2] 
[1,] 3 4 
[2,] 9 10 

, , 2 

    [,1] [,2] 
[1,] 5 6 
[2,] 11 12 

, , 3 

    [,1] [,2] 
[1,] 7 8 
[2,] 13 14 

我々は非常に近い取得することができ、再形成するためにインデックスを移動するにはapermを使用して、dim<-

>`dim<-`(aperm(o, c(3,1,2)), c(6,2)) 

    [,1] [,2] 
[1,] 3 4 
[2,] 5 6 
[3,] 7 8 
[4,] 9 10 
[5,] 11 12 
[6,] 13 14 

上記の2dの順番で実際に使用したい場合は、転置が必要です。

> t(`dim<-`(aperm(o, c(2,1,3)), c(2,6))) 
    [,1] [,2] 
[1,] 3 4 
[2,] 9 10 
[3,] 5 6 
[4,] 11 12 
[5,] 7 8 
[6,] 13 14 
関連する問題