【发布时间】:2016-03-03 01:56:36
【问题描述】:
我有一个存储不同值的数据框。示例:
a$open a$high a$low a$close
1.08648 1.08707 1.08476 1.08551
1.08552 1.08623 1.08426 1.08542
1.08542 1.08572 1.08453 1.08465
1.08468 1.08566 1.08402 1.08554
1.08552 1.08565 1.08436 1.08464
1.08463 1.08543 1.08452 1.08475
1.08475 1.08504 1.08427 1.08436
1.08433 1.08438 1.08275 1.08285
1.08275 1.08353 1.08275 1.08325
1.08325 1.08431 1.08315 1.08378
1.08379 1.08383 1.08275 1.08294
1.08292 1.08338 1.08271 1.08325
我想做的是创建一个新列 a$mean 存储每一行的 a$high 和 a$low 的平均值。
我是这样实现的:
highlowmean <- function(highs, lows){
m <- vector(mode="numeric", length=0)
for (i in 1:length(highs)){
m[i] <- mean(highs[i], lows[i])
}
return(m)
}
a$mean <- highlowmean(a$high, a$low)
不过,我对 R 和一般的函数式语言有点陌生,所以我很确定有一种更有效/更简单的方法可以实现这一目标。
如何以最聪明的方式实现这一目标?
【问题讨论】: