2017-12-07 13 views
-2

私はこのデータフレームを持っている: -データフレームに基づいて行列を作成し、重みを格納

pf = structure(list(Var1 = structure(1:21, .Label = c("1", "2", "3", 
"4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", 
"16", "17", "18", "19", "20", "21"), class = "factor"), Freq = c(101L, 
61L, 84L, 98L, 56L, 222L, 137L, 103L, 136L, 97L, 77L, 110L, 84L, 
88L, 92L, 89L, 86L, 87L, 84L, 71L, 36L), Relative_freq = c(0.0505252626313157, 
0.0305152576288144, 0.0420210105052526, 0.0490245122561281, 0.0280140070035018, 
0.111055527763882, 0.0685342671335668, 0.0515257628814407, 0.0680340170085043, 
0.0485242621310655, 0.0385192596298149, 0.0550275137568784, 0.0420210105052526, 
0.0440220110055028, 0.0460230115057529, 0.0445222611305653, 0.0430215107553777, 
0.0435217608804402, 0.0420210105052526, 0.0355177588794397, 0.0180090045022511 
)), .Names = c("Var1", "Freq", "Relative_freq"), row.names = c(NA, 
-21L), class = "data.frame") 

は、今私は(エッジとしてこれらrelative_freqを保存するであろう、このデータフレームに基づいて行列を作成したいマトリックス・セル)体重。

相続コード: -

k=5 
PF = matrix(data=NA, nrow=k, ncol=k) 

for(i in 1:k){ 
    for(j in 1:k){ 
    pf = PageFreq(pf,i,j) 
    a = pf[[1]] 
    b = pf[[2]] 
    PF[i,j] = 2 * a *b/(a + b) 

    } 
} 

、ここでは、私が正しい動作するために微調整を取得する必要がPageFreq機能である: -

PageFreq = function(pf,i,j){ 

    a = pf %>% filter(Var1 == i) %>% select(Relative_freq); 
    b = pf %>% filter(Var1 == j) %>% select(Relative_freq); 
    c = list(a,b); 
    return (c) 

} 

いただきました!正しい方法を見てください!おかげ

+0

所望の出力を示してください。 – www

+0

そのデモによると5 * 5の行列ですが、実際には21 * 21の行列と "[、1] [、2] [、3] [、4] [1、]" 1と1 "の高調波平均1と2の高調波平均1と3の高調波平均" 1と4の高調波平均 " [、5] [1]"高調波平均1と5 "" – SumitArya

+0

コメントではなく、あなたの投稿の情報。あなたのコメントを読むのは難しいです。 – www

答えて

0

はHERESに取り組んコード: -

PageFreq = function(pf,i,j){ 

    a = pf %>% filter(Var1 == i) %>% select(Relative_freq); 
    b = pf %>% filter(Var1 == j) %>% select(Relative_freq); 
    a1 = a$Relative_freq 
    b1 = b$Relative_freq 
    c = list(a1,b1); 
    return (c) 

} 
k = 21 
PF = matrix(data=NA, nrow=k, ncol=k) 

for(i in 1:k){ 
    for(j in 1:k){ 
    pff = PageFreq(pf,i,j) 
    a = pff[[1]] 
    b = pff[[2]] 
    PF[i,j] = 2 * a *b/(a + b) 

    } 
} 
関連する問題