跨行代理我有一個類似這將創建一個數據框:創建方程函數中的R
dummy=data.frame(c(1,2,3,4),c("a","b","c","d"));colnames(dummy)=c("Num","Let")
dummy$X1=rnorm(4,35,6)
dummy$X2=rnorm(4,35,6)
dummy$X3=rnorm(4,35,6)
dummy$X4=rnorm(4,35,6)
dummy$X5=rnorm(4,35,6)
dummy$X6=rnorm(4,35,6)
dummy$X7=rnorm(4,35,6)
dummy$X8=rnorm(4,35,6)
dummy$X9=rnorm(4,35,6)
dummy$X10=rnorm(4,35,6)
dummy$Xmax=apply(dummy[3:12],1,max)
只有真實的東西是260個* 13000個細胞大致
什麼,我做的目的是實現下面各行等式中由數據定義的一組列的[X:X](在該示例的那些列內虛設[3:12])
TSP = SUM((1-(希/ Xmax))/(n-1))
其中X是感興趣的列中的行&內的每個單獨值(表示每列我,即有一個X1,X2的,對於每一行的X3 ...的值),的Xmax是行中所有這些值中最大的那個(在粗糙的$ Xmax列中定義),n是選擇的列數(例如:n = 10)。在實際的數據集中,我將選擇26列。
我想創建一個整潔的小函數來執行這個計算並將每行的值存入一個名爲dummy $ TSP的列中,並且對於所有13000行都這樣做。
一個簡單的解決方案是以下內容,但正如我所說,我希望將其引入某種整潔的函數中,在那裏我可以選擇列,其餘的(幾乎)是自動的。
dummy$TSP<- ((((1-(dummy$X1/dummy$Xmax))/(10-1))
+(((1-(dummy$X2/dummy$Xmax))/(10-1))
...
+(((1-(dummy$X10/dummy$Xmax))/(10-1)))
我也很欣賞解釋過程的答案,所以我會更有可能學習,提前致謝!
1個非常感謝,有一個等式中的小錯誤(括號中沒有包含1-(x/xmax)部分),但是我已經編輯了答案,它現在可以工作了! – Ell 2013-03-22 17:37:33
沒問題!但仔細看看你上面發佈的公式*。你有一個額外的大括號,所以我不知道該把它放在哪裏。 – 2013-03-22 17:38:39
謝謝,我已經編輯了問題中的等式(星期五晚了很長時間之後,它肯定會發生!) – Ell 2013-03-22 17:45:48