2015-06-18 168 views
2

,我有以下的數據幀:移調一個單列多行

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



d<- data.frame(a,b,c) 
     a b c 
    1 2 3 9 
    2 1 1 2 
    3 3 4 5 
    4 6 5 4 
    5 7 8 7 

而且我想用一個單個列轉置五行,像這樣:

2 
3 
9 
1 
1 
2 
3 
4 
5 
6 
5 
4 
7 
8 
7 

回答

1

試試這個:

matrix(t(d),ncol=1) 

移調data.frame並重新定義爲具有1列的矩陣。

感謝@DavidArenburg,我們也可以這樣做:

c(t(d)) 
+0

我會把這個放在這裏,因爲我不知道他們想要什麼'c(t(d))' –

0

讓我們假設存在需要在你提到的方式操作的2-d陣列。讓我們調用數組sample [rows] [cols],其中行和列是井,行和列的大小。我將給出一個C++函數的示例代碼,它將返回最終的列向量,如下所示,它將是一個基本上可以用作所需列向量的數組。

int ret_col(int sample[][]) 
    { 
      int i,j,k=0; 
      int final_column[rows*cols]; 

      for(i=0;i<cols;i++) 
      { 
       for(j=0;j<rows;j++) 
       { 
        final_column[k++]=a[j][i]; 
       } 
      } 

      return final_column; 
    } 

如果有什麼,這不是在我的代碼清晰,請隨時提出。希望這有助於! :)

+0

問題是關於'R'而不是'C'的代碼。 – zx8754

+1

對不起,我對這門語言並不熟悉,我希望你能夠將我用C++表達的邏輯應用到R中。從我的經驗來看,它不是重要的語言,而是算法。無論如何,抱歉不注意這個問題。 –

+0

同意邏輯,還有[Rcpp](http://cran.r-project.org/web/packages/Rcpp/index.html)包,它可以用來包裝R內的C代碼。 – zx8754