功能步骤有效,但不适用于lapply

时间:2018-03-23 16:44:38

标签: r

我有一套简单的步骤来重新格式化一些数据。这些步骤起作用(找出差异,然后隔离那些高于或低于一个标准偏差的那些)。

x <- x[!is.na(x)]
x.d <- diff(x)
x.d <- x.d[!is.na(x.d)]
x.d <- ifelse(abs(x.d) > sd(x.d,na.rm = TRUE),x.d, 0)

我有很多系列,所以想把这些行放到一个函数中,并用lapply调用。例如

  data.prep <- function(x) {
  <The lines above>
  return(x.d) }

我附加数据并创建了一个包含系列名称的列表 - 在这种情况下为“world”并称为函数

mydatalist <- as.list("world")
mydatalist.d <- lapply(mydatalist, FUN = data.prep)

我得到了

 Error in abs(x.d) : non-numeric argument to mathematical function 
3. ifelse(abs(x.d) > sd(x.d, na.rm = TRUE), x.d, 0) at FdataPrep.R#5
2. FUN(X[[i]], ...) 
1. lapply(mydatalist, FUN = data.prep)

这是我想要获得的链接。 Input data versus wanted output 左边的图是原始数据,右边的图是我想要的输出。

有人可以帮助了解我哪里出错吗?

谢谢,

约翰

0 个答案:

没有答案