我已通过 read.csv 将原始数据(10000 行和 392 列)导入 R。我想知道如何将其转换为矩阵格式。非常感谢您的帮助!
melon
问问题
26628 次
3 回答
8
您的问题可能会迁移到 StackOverflow。但是,答案相对简单,我会提供。read.csv 会生成一个 data.frame 作为结果。如果您的所有值都是相同的基本元素(即变量)类型,即数字、字符等。那么您可以在矩阵数据结构中表示它们。您可以使用“as.matrix”函数来做到这一点。
例如
mydataframe <- data.frame(a=c(1,2),b=c(2,3))
mymatrix <- as.matrix(mydataframe)
于 2013-01-29T21:22:04.700 回答
6
如果数据由 读取read.csv
但实际上与 一致matrix
,则scan
首先使用,可能skip=1
用于跳过标题行。
m = matrix(scan("file.csv", what=numeric(), skip=1), nrow=392)
对于结构简单的数据,scan 比 read.csv 快得令人不安。
于 2013-01-30T01:01:45.237 回答
5
的替代方法as.matrix()
是data.matrix()
,它的好处是在转换为矩阵时保留因子变量的数字(编码)信息。考虑:
d <- data.frame(1:10, letters[1:10])
as.matrix(d)
data.matrix(d)
> as.matrix(d)
X1.10 letters.1.10.
[1,] " 1" "a"
[2,] " 2" "b"
[3,] " 3" "c"
[4,] " 4" "d"
[5,] " 5" "e"
[6,] " 6" "f"
[7,] " 7" "g"
[8,] " 8" "h"
[9,] " 9" "i"
[10,] "10" "j"
> data.matrix(d)
X1.10 letters.1.10.
[1,] 1 1
[2,] 2 2
[3,] 3 3
[4,] 4 4
[5,] 5 5
[6,] 6 6
[7,] 7 7
[8,] 8 8
[9,] 9 9
[10,] 10 10
请注意带有文本标签的因子的存在如何将整个矩阵呈现as.matrix()
为字符矩阵,同时data.matrix()
通过将因子标签替换为其内部数字代码来保留数据的数字性质。
于 2013-01-29T22:19:47.433 回答