【发布时间】:2016-04-18 17:36:01
【问题描述】:
我是 R 的新手,对更多的程序语言有一定的了解。目前,我正试图摆脱不必要的“for”循环,并让它们使用来自 apply 系列的东西。所以这是我的问题:
- 假设我有一个向量:
data <- c(0.0008, 0.0007, 0.0040, 0.0081, 0.0217, 0.0292, 0.0332, 0.0451, 0.0533, 0.0621) - 而且我想将它转换成一个只增加数据点的向量。为了简单起见,假设我希望像第二个元素(小于前一个元素)这样的所有元素成为前一个元素和下一个元素的平均值
- 为此,我尝试像这样使用 lapply:
data <- lapply(data, function(i) ifelse(data[i+1]<data[i], data[i+1]<-(data[i]+data[i+2])/2, data[i+1])) - 结果是一个包含所有元素的列表(不是向量):
logical(0)
我不知道我的错误在哪里 - 我在这里错过了什么?
【问题讨论】:
标签: r