此错误是什么:操作<不支持?

时间:2019-07-11 09:01:17

标签: r

我具有以下功能,旨在对数据集中的几个(但不是全部)变量用1946替换小于1946的值:

myFun <- function(data, var){
  data[, var] <- lapply(data[, var], FUN = function(x){
    x[x < 1946] <- 1946
    x
  }
  )
  return(data)  
} 

在简单的测试data.frame上尝试时,它可以正常工作,但是在实际数据集(sf)中的变量上运行该函数时,出现以下错误:

Error in Ops.sfc(x, 1946) : operation < not supported

我最初认为NA值可能有问题,但是在函数中添加na.rm = TRUE并没有任何作用。我也曾尝试对<进行双引号和单引号,但这导致函数出错。在实际数据中,我要替换的变量是整数。

这是我在功能起作用的地方进行的测试的语法:

df1 <- data.frame("var1" = c(1942:1947), "var2" = c(1943:1947, NA), "var3" = rep(1945, times = 6))

variables <- c("var3", "var2")
df1 <- muFun(data = df1, var = variables)

> df1
  var1 var2 var3
1 1942 1946 1946
2 1943 1946 1946
3 1944 1946 1946
4 1945 1946 1946
5 1946 1947 1946
6 1947   NA 1946

0 个答案:

没有答案