R独特功能与消除重复值

时间:2016-05-11 12:07:00

标签: r duplicates data-cleaning

我有一个数据框和一个信息文件(也是表格格式),用于描述数据框中的数据。需要根据info文件中的信息重新标记数据帧的行名称。问题是信息文件中与数据框行名相对应的信息包含许多重复值。因此,有必要将df转换为矩阵,以使行名称可以具有重复值。

matrix1<-as.matrix(df)
ptr<-match(rownames(matrix1), info_file$Array_Address_Id)
rownames(matrix1)<-info_file$ILMN_Gene[ptr]
matrix1<-matrix1[!duplicated(rownames(E.rna_conditions_cleaned)), ]

以上是我自己的代码,但朋友给了我一些类似目标但结果不同的代码:

u.genes <- unique(info_file$ILMN_Gene)
ptr.u.genes <- match( u.genes, info_file$ILMN_Gene )
matrix2 <- as.matrix(df[ptr.u.genes,])
rownames(matrix2) <- u.genes

问题在于这两种策略会产生不同的结果:

 > dim(matrix1)
 [1] 30783   565
 > dim(matrix2[,ptr.use])
 [1] 34694   565

见上文矩阵2比另一行多4000行。 正如您所看到的,下面输出的行名称确实是唯一的,但这并不能说明为什么两种方法选择了不同的行,但哪种方法更好,为什么输出不同?

           U.95   JIA.65    DV.93    KD.76    HC.54    KD.77
 7A5   5.136470 5.657738 5.122299 5.195540 5.378040 4.997210
 A1BG  6.166210 6.210373 6.382051 6.494048 5.888900 5.914070
 A1CF  5.222130 4.940529 4.715292 5.182658 4.510937 5.060749
 A26C3 5.410403 5.148601 5.122299 3.967419 4.780758 4.868472
 A2BP1 5.725115 4.817920 5.483607 5.444427 5.503358 5.121951
 A2LD1 6.505271 6.558276 5.494096 4.833267 6.988192 6.082662

我需要知道这一点,因为我想通过使行值最佳来获得最准确的下游分析的行值。

0 个答案:

没有答案