我对R和编码非常陌生。 尝试整理出我通过以下方式获得的一组数据:
filename = read.delim("UA0001.dat", header = FALSE, skip=16)
我得到的是一个具有一列多行的矩阵,每列中有8个不同的数据点。
V1
1-3.39 3.11 4.361 3.35 3.76 3.66 3.44 3.72
2-3.13 3.35 3.01 3.05 2.73 2.90 2.73 2.31
.
.
.
如何将所有这些数据分开,这样我就可以拥有一个只有一列的矩阵,其中每个数据点都放在单独的行中?
V1
1-3.39
2-3.11
3-4.36
4-3.35
5-3.76
.
.
.
答案 0 :(得分:0)
您可以通过进行转置并将其分解为矢量并使用ncol = 1
将其转换回矩阵来对其进行重构
matrix(c(t(mat)), ncol = 1)
# [,1]
# [1,] 3.390
# [2,] 3.110
# [3,] 4.361
# [4,] 3.350
# [5,] 3.760
# [6,] 3.660
# [7,] 3.440
# [8,] 3.720
# [9,] 3.130
#[10,] 3.350
#[11,] 3.010
#[12,] 3.050
#[13,] 2.730
#[14,] 2.900
#[15,] 2.730
#[16,] 2.310
数据
mat <-matrix(c(3.39, 3.11, 4.361, 3.35, 3.76, 3.66, 3.44, 3.72,
3.13 ,3.35, 3.01, 3.05, 2.73, 2.90, 2.73, 2.31), byrow = TRUE, nrow = 2)
答案 1 :(得分:0)
这是unmatrix
中gdata
的一个选项
library(gdata)
matrix(unmatrix(mat, byrow = TRUE))
# [,1]
# [1,] 3.390
# [2,] 3.110
# [3,] 4.361
# [4,] 3.350
# [5,] 3.760
# [6,] 3.660
# [7,] 3.440
# [8,] 3.720
# [9,] 3.130
#[10,] 3.350
#[11,] 3.010
#[12,] 3.050
#[13,] 2.730
#[14,] 2.900
#[15,] 2.730
#[16,] 2.310
或与aperm
matrix(aperm(mat, c(2, 1)))
mat <-matrix(c(3.39, 3.11, 4.361, 3.35, 3.76, 3.66, 3.44, 3.72,
3.13 ,3.35, 3.01, 3.05, 2.73, 2.90, 2.73, 2.31), byrow = TRUE, nrow = 2)