我已通过 read.csv 将原始数据(10000 行和 392 列)导入 R。我想知道如何将其转换为矩阵格式。非常感谢您的帮助!
			
			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   回答