跨行代理我有一个类似这将创建一个数据框:创建方程函数中的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