R中同一列的两次迭代

埃里克·K

目标是将第二行与第一行进行比较并重复此操作。我的策略是对 R 中的同一个列向量执行两次单独的迭代。

这是代码:

对于测试数据,数据长度为50

dat <- rnorm(50)        
dat <- data.frame(dat)

功能

cv2 = function(a) {

  for(i in 1:nrow(a)) { 

  for(j in 1:nrow(a)) {

  iplus1 = next(a[j])

  return((2*(abs((a[i])-(iplus1)))) / ((a[i])+(iplus1)))

}}}  

输出应创建一个范围在 0-2 之间的统计数据,长度等于 49。到目前为止,该函数的返回值为 NULL。任何帮助,将不胜感激。谢谢!

约翰科尔曼

所描述的计算实际上是对向量的计算。在基础 R 中,你可以这样做:

cv2 = function(a){
  n <- length(a)
  2*abs((a[-1]-a[-n])/(a[-1]+a[-n]))
}

然后调用它就像cv2(dat[1,])你想给它提供一个数据框的列一样。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章