将特定公式应用于R中的大型矩阵/数据框,以规范化我的数据

问题描述 投票:0回答:1

例如,我有一个大的“距离矩阵”(R中实际上是一个170x170数据帧):(实值):

         A            B          C
A   0.198395022 0.314012433 0.32704998
B   0.314012433 0.262514533 0.318539233
C   0.32704998  0.318539233 0.211224133

我正在尝试应用一个特定的公式(已经有),按照我的统计模型的要求,将这种变化转化为0-1的比例。我期望在整个数据框架中获得类似的信息(应用公式时不是真实的输出示例):

          A              B              C
A        1          0.846050953    0.825897603
B   0.846050953          1         0.822548469
C   0.825897603     0.822548469         1

因此,我需要通过在R中应用此,相对于各自的值重新计算每个非对角线像元:Formula here

其中

B

是归一化值的矩阵,H是我的矩阵/数据帧,而ij是我的矩阵/数据帧的行和列, 分别。假定此归一化过程系统地将对角线(i = j)替换为1。谢谢!

我有一个大的“距离矩阵”(实际上是R中的170x170数据帧),例如(实际值):A B C A 0.198395022 0.314012433 0.32704998 B 0.314012433 0.262514533 ...

r dataframe matrix formula diagonal
1个回答
0
投票
您可以进行循环以根据您的公式替换每个值:

df <- data.frame(rnorm(3, 20,15), rnorm(3, 10,5), rnorm(3, 200,100)) df # Check out the results for (i in 1:length(df)){ for (j in 1:nrow(df)){ df[i,j] <- df[i,j]/((df[i,i]+df[j,j])/2) } }

© www.soinside.com 2019 - 2024. All rights reserved.