[英]Combining Columns row-wise R
我有一个值矩阵:
x<-matrix(rnorm(8),nrow=2,ncol=4,byrow=T)
[,1] [,2] [,3] [,4]
[1,] -0.1048800 0.4437521 -0.7768075 0.2820776
[2,] 0.0700801 -0.4621662 -0.7877975 0.4933406
我想使它看起来像这样:
[,1]
[1,] -0.1048800
[2,] 0.0700801
[3,] 0.4437521
[4,] -0.4621662
[5,] -0.7768075
[6,] -0.7877975
[7,] 0.2820776
[8,] 0.4933406
我试过了:
temp<-c()
for(l in 1:ncol(x)){
temp<-rbind(temp,as.x[,l])
}
但它不会使它工作。 有任何想法吗?
为什么不只是matrix(x,8,1)
?
x<-matrix(rnorm(8),nrow=2,ncol=4,byrow=T)
> matrix(x,8,1)
[,1]
[1,] -1.2735095
[2,] -0.8340542
[3,] -1.0982551
[4,] 0.8774815
[5,] 1.0443129
[6,] -0.1672568
[7,] -0.3545977
[8,] -1.2148138
或者如最新邮件所述,更通用的矩阵matric(x,ncol = 1)
。
我认为这样做:
x<-matrix(rnorm(8),nrow=2,ncol=4,byrow=T)
temp <- as.matrix(as.vector(x))
记住矩阵是具有dim
属性的向量...
您可以直接更改dim
属性来做...
dim(x) <- c(ncol(x)*nrow(x),1)
一种不错的方法是使用attr
如下所示:
> set.seed(1)
> x<-matrix(rnorm(8),nrow=2,ncol=4,byrow=T)
> attr(x, "dim") <- c(prod(dim(x)), 1)
> x
[,1]
[1,] -0.6264538
[2,] 0.3295078
[3,] 0.1836433
[4,] -0.8204684
[5,] -0.8356286
[6,] 0.4874291
[7,] 1.5952808
[8,] 0.7383247
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.