将数据帧的每一行除以平方变量的总和

时间:2018-04-13 12:47:39

标签: r dataframe

在时间序列数据库中,是否有一种干净的方法可以将数据帧的每一行除以平方变量之和----其中事件是行,列是变量---。目前,我的方法是以下

for(i in 1:nrow(base)){
     base[i,] <- base[i,]/(as.numeric(t(c(base[i,]))) %*% as.numeric(t(c(base[i,]))))
  }

为了使用%*%运算符,我找到的唯一方法是上面显示的使用as.numeric %>% t %>% c机制的方法,它看起来并不干净。

为了一个可重复的例子:

base <-structure(list(Var1 = c(920, 734, 1001, 1033, 752, 837, 734, 
817), Var2 = c(4861, 4966, 4855, 3835, 4782, 5348, 4648, 4595
), Var3 = c(5011, 4618, 2718, 4344, 4872, 5076, 4678, 4563), 
    Var4 = c(4785, 4610, 4697, 4149, 4693, 4866, 4517, 3271), 
    Var5 = c(5101, 4220, 4444, 4301, 965, 4557, 3524, 4201), 
    Var6 = c(5059, 4048, 4217, 4397, 3711, 4032, 5478, 4051), 
    Var7 = c(2134, 1766, 1640, 1837, 1662, 1711, 1838, 1625)), .Names = c("Var1", 
"Var2", "Var3", "Var4", "Var5", "Var6", "Var7"), class = c("data.table", 
"data.frame"), row.names = c(NA, -8L), .internal.selfref = <pointer: 0x1b8ec38>)

1 个答案:

答案 0 :(得分:4)

我还会质疑标准化的含义,但这是一种更简单的方法来完成你在for循环中所做的事情:

=-