用一列转置多行

Transpose multiple rows with one single column

我有以下数据框:

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

试试这个:

matrix(t(d),ncol=1)

转置 data.frame 并重新定义为具有 1 列的矩阵。

感谢@DavidArenburg,我们还可以:

c(t(d))

假设有一个二维数组需要按照您提到的方式进行操作。让我们调用数组 sample[rows][cols],其中 rows 和 cols 是井、行和列的大小。我将给出一个 C++ 函数的示例代码,它将 return 最后的列向量,例如,它将是一个数组,您基本上可以将其用作所需的列向量。

    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;
    }

如果我的代码中有任何不清楚的地方,请随时询问。希望这有帮助! :)