1

我是一个非常新手的 R 程序员,但我似乎无法在任何地方找到答案。如果这是一个新手问题,我很抱歉。

我有 435 个项目并计算了所有项目之间的差异,给了我一个相似矩阵,其中列名和行名以及对角线上的“0”(http://i.stack.imgur.com/E75DW.png)。

R 的文件格式是什么,以便我可以将其保存并在 R 中读取?而且,一旦我在 R 中,我该如何阅读它?我使用了 read.csv 和 read.table 但我不确定我做得对,尤其是列名和行名,因此我不信任输出。最终我想集群并挑选集群代表。

谢谢你!丹尼

例如,我目前正在从 C 程序保存到 CSV 文件。它的格式类似于下面的代码段(前导“,”是为了确保列名和行名在对角线上对齐)。但我不知道如何将其读入 R 以获得具有命名列和行的 435x435 矩阵。

,134424,144077,150472,154222,156937,156941,
134424,0,0.883618248417182,0.974399713412412
144077,0.883618248417182,0,0.774739255322855
150472,0.974399713412412,0.774739255322855,0
4

1 回答 1

0

将文件导出为 CSV 文件,例如data.csv.

您可以像这样作为矩阵导入 R:

m <- as.matrix(read.csv(file='data.csv', header=F))

header=F很重要,否则文件中的第一行将被视为标题,而不是数据的一部分。

以这个 csv 数据为例:

,2,3
4,0,6
7,8,

导入到 R 它看起来像:

> m <- as.matrix(read.csv(file='data.csv', header=F))
> m
     V1 V2 V3
[1,] NA  2  3
[2,]  4  0  6
[3,]  7  8 NA

您可以访问这样的元素:

> m[2,1]
V1 
 4 
> m[3,2]
V2 
 8 

如果您想将NA值替换为0

> m[is.na(m)] <- 0
> m
     V1 V2 V3
[1,]  0  2  3
[2,]  4  0  6
[3,]  7  8  0

如果要删除V1..V3列名:

> colnames(m) <- NULL
> m
     [,1] [,2] [,3]
[1,]    0    2    3
[2,]    4    0    6
[3,]    7    8    0
于 2013-09-20T20:53:27.963 回答