如何将数据转换为Matrix格式

时间:2013-01-29 21:12:26

标签: r

我已经通过read.csv将原始数据(10000行和392列)导入到R中。我想知道如何将其转换为Matrix格式。非常感谢你的帮助!

3 个答案:

答案 0 :(得分:8)

您的问题可能会迁移到StackOverflow。但是,答案相对简单,我会提供。 read.csv生成一个data.frame作为结果。如果所有值都是相同的基本元素(即变量)类型,即数字,字符等,那么您可以在Matrix数据结构中表示它们。您可以使用“as.matrix”功能完成此操作。

e.g。

mydataframe <- data.frame(a=c(1,2),b=c(2,3))    
mymatrix <- as.matrix(mydataframe)

答案 1 :(得分:6)

如果数据由read.csv读取但实际上与matrix一致,则首先使用scan,可能使用skip=1跳过标题行。

m = matrix(scan("file.csv", what=numeric(), skip=1), nrow=392)
与read.csv相比,对于结构简单的数据,

扫描速度令人不安。

答案 2 :(得分: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()通过用其内部数字替换因子标签来保留数据的数字性质代码。

相关问题