0
私が研究しているFacebookページの各ペアに対して計算された数値を配列/行列に書き込む作業を自動化しようとしています。私は、ページの各ペアの数を計算して配列を塗りつぶすことで、これを手動で行うことができます。しかし、私はこれを自動的に行う機能を理解することはできません。手動充填の例:RSLの計算で生成された数値で配列/行列を塗りつぶす
サンプル:
from_id from_name x$likes[, 2]
56924 202099276507678 24.hu 1502184033424382
79551 202099276507678 24.hu 478120425722688
20007 202099276507678 24.hu 910595435726013
574961 543788999005363 ORIGO 918616121589753
172612 308921667047 168 Óra 1225006607529482
46408 131283758531 HVG 638659559622773
394136 114928525189230 Népszava Online 1021414547939024
20310 202099276507678 24.hu 861515480644047
167859 308921667047 168 Óra 2004057346485378
197230 224510837580985 mno.hu 10207173898839986
51713 202099276507678 24.hu 1094966453889403
342693 543788999005363 ORIGO 1065689316812793
413020 224510837580985 mno.hu 1158229737540788
267020 131059950261988 RTL Klub official 946100758842247
89410 560525343980775 Index.hu 815605101902725
294715 114324688634857 atv.hu 1152065254825682
132637 731815466835029 The Budapest Beacon 1125893650794568
389574 308921667047 168 Óra 954405207961450
928211 114324688634857 atv.hu 1116577471733852
118642 131283758531 HVG 1178121435555294
152663 543788999005363 ORIGO 690312584444943
29586 560525343980775 Index.hu 1768701566700483
2066110 248494883317 TV2 1031371220285102
657501 308921667047 168 Óra 1740704569476190
400491 560525343980775 Index.hu 1083676221692203
計算と手動充填:
media <- unique(rsl$from_name)
v<- matrix(nrow=length(media), ncol=length(media))
colnames(v) <- c(media)
rownames(v) <- c(media)
mf <- function(a, b) {
ua <- rsl[rsl$from_name==a, "x$likes[, 2]"]
ub <- rsl[rsl$from_name==b, "x$likes[, 2]"]
pa <- length(ua)
pb <- length(ub)
pab <- length(intersect(ua,ub))
return(c(pa,pb,pab))
}
le <- mf(a=media[1], b=media[1])
M <- 2200000
NFD <- (max(log10(le[1]), log10(le[2])) - log10(le[3]))/(log10(M) - min(log10(le[1]), log10(le[2])))
v[1,1] <- NFD
私は基本的に「ル」のペアを変更して得を挿入します行列の値。そこに間違いがあるが、私はそれは私がしたいように動作するために作ることができなかった、明らかに
v <- matrix(NA, nrow=length(media), ncol=length(media))
for (i in seq(media)) {
for (j in seq(media)) {
le <- mf(a=unique(media), b=unique(media))
NFD <- (max(log10(le[1]), log10(le[2])) - log10(le[3]))/(log10(M) - min(log10(le[1]), log10(le[2])))
v[i,j] <- NFD
}
}
v
:
私はこのような何かを試してみました。助けてくれてありがとう。
アムIおよび/またはJ上のforループ依存で唯一の値が出力場所であることを考える中、私は間違っている:だから、「ル」の行のために、次のようなものが必要だろうか?ループの実行ごとにle関数に異なる入力変数が必要だと思っていますが、どこでそれが起こっているのかわかりません。何か不足していますか? – rosscova
あなたが正しいです、問題は私がその仕事をする方法を見つけることができないということです。ループのすべての反復で、異なるメディアのペアを使用してその価値を計算しました。たとえば、a = media1、b = media2、計算して配列に挿入します。次に、a = media1、b = media3、計算して配列に挿入するなどです。 – Dalibor