用一列转置多行
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;
}
如果我的代码中有任何不清楚的地方,请随时询问。希望这有帮助! :)
我有以下数据框:
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;
}
如果我的代码中有任何不清楚的地方,请随时询问。希望这有帮助! :)