在R中使用Mutate_all时出错

时间:2018-03-14 09:42:15

标签: r mutate

我必须检查数据框的所有列中是否有负值。

以下是来自Dataframe列表的DF的结构,它们都具有相同的结构。

     FECHA   SPX Index MCUDNA Index  SX5E Index MXEMSC Index MXME Index 
2 2010-12-31 332.636     332.63        242.86     237.44      567.35
3 2011-01-07 334.327     334.327       808.25     234.02      235.26
4 2011-01-14 341.771     341.771       2920.40    244.95      247.43

好的,我必须检查每个数据帧中的所有列是否与FECHA列具有相同的dim,例如,如果FECHA列有273行,SPX INDEX应该具有相同的,但我必须检查是否所有价值是积极的。

我解释一下,vela参数是一个数据帧列表,所有这些都与上一个数据帧具有相同的结构。

这是我的代码:

valorNegativos = function (vela) {
  dim_pxlast = dim(vela[[1]])[1]
  for(a in 1:length(vela)) {
    mutate_all(vela[[a]], funs( ifelse (length(vela[[a]]$. >= 0) == dim_pxlast) , print(paste0("Datos correctos" )), stop("ERROR: Existen datos negativos")))
  }
}

在第一行中,我获得了正确的维度,并且使用mutate_all,我遍历所有列,检查所有值是否为正值,然后计算所有正值,并使用ifelse检查它们是否具有相同的维度,如果没有,我运行Stop错误,我停止执行我的程序。

我不知道为什么会发生这种错误。

mutate_impl(.data,dots)中的错误:   评估错误:缺少参数“是”,没有默认值。

1 个答案:

答案 0 :(得分:0)

解决了...这是一个错误,因为我没有'关闭ifelse声明......

valorNegativos = function (vela) {
  dim_pxlast = dim(vela[[1]])[1]
  for(a in 1:length(vela)) {
    #mutate_all(vela[[a]], funs( ifelse( sum((vela[[a]]$. > 0) == TRUE) / ncol(vela[a]) == length(vela[[a]]$FECHA), print(paste0("Datos correctos" )), stop("ERROR: Existen datos negativos"))))
    mutate_all(vela[[a]], funs( ifelse (length(vela[[a]]$. >= 0) == dim_pxlast , TRUE , stop("ERROR: Existen datos negativos"))))
  }
}