R 如何建立平方关系矩阵
我想用基因表达数据做一个平方关系矩阵。我的数据子集如下表所示:R 如何建立平方关系矩阵,r,R,我想用基因表达数据做一个平方关系矩阵。我的数据子集如下表所示: gene. Sample1 Sample2 Sample3 Sample4 Sample5 A 13.932431 5.366284 6.93992 6.818242 2.564284 B 21.111017 0.662061 1.563687 2.135377 0.261206 C 26.471751
gene. Sample1 Sample2 Sample3 Sample4 Sample5
A 13.932431 5.366284 6.93992 6.818242 2.564284
B 21.111017 0.662061 1.563687 2.135377 0.261206
C 26.471751 0.932416 1.673144 1.606691 0.361993
D 27.597507 36.591138 28.371248 31.376842 30.893555
E 35.324703 0 1.462438 1.175831 0
F. 7.381737 3.083751 4.56243 6.64035 5.346179
G 20.689661 58.773005 29.078037 69.195561 58.661982
H 0 0 0 0 0
I 0 0 0 0 0
我想用这个公式:
X%*%X/ncol(X)
。我想得到一个矩阵,它的行数等于列数,列数应该等于个体数。我总共有500个样本和35000个基因。你不能用X
乘以X
。也许你想要这个
假设从.csv
文件导入的数据位于名为data
的data.frame中。您需要删除包含基因符号的字符列,然后才能将矩阵的转置与自身相乘
mat <- as.matrix(data[,!names(data) %in% "gene"])
(t(mat) %*% mat) / nrow(mat)
Sample1 Sample2 Sample3 Sample4 Sample5
Sample1 425.8389 262.4451 182.6579 285.6350 239.6188
Sample2 262.4451 536.9769 311.2274 586.1026 512.1032
Sample3 182.6579 311.2274 191.8691 331.9591 291.7184
Sample4 285.6350 586.1026 331.9591 652.4043 564.7350
Sample5 239.6188 512.1032 291.7184 564.7350 492.3329
谢谢!是的,这就是我要找的。但我有500个样本,总共有35000个基因。是否有另一种输入数据的方法,可以减少准备“数据”所需的时间。抱歉,没有说清楚。我的意思是我有一个很大的数据集。导入输入csv文件后,如何创建“数据”对象?正如您提到的单个标签一样,示例数据的答案中每个示例的示例值。我认为手动创建这样的dat对象将非常耗时。有没有办法让它自动化?
data <- structure(list(gene = structure(1:9, .Label = c("A", "B", "C",
"D", "E", "F", "G", "H", "I"), class = "factor"), Sample1 = c(13.932431,
21.111017, 26.471751, 27.597507, 35.324703, 7.381737, 20.689661,
0, 0), Sample2 = c(5.366284, 0.662061, 0.932416, 36.591138, 0,
3.083751, 58.773005, 0, 0), Sample3 = c(6.93992, 1.563687, 1.673144,
28.371248, 1.462438, 4.56243, 29.078037, 0, 0), Sample4 = c(6.818242,
2.135377, 1.606691, 31.376842, 1.175831, 6.64035, 69.195561,
0, 0), Sample5 = c(2.564284, 0.261206, 0.361993, 30.893555, 0,
5.346179, 58.661982, 0, 0)), class = "data.frame", row.names = c(NA,
-9L))