Что означает эта ошибка: операция <не поддерживается? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть следующая функция, предназначенная для замены значений, меньших, чем 1946 г., на 1946 г. для нескольких (но не всех) переменных в наборе данных:

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

При испытании его на простых тестовых данных.кадр, он работает нормально, но при запуске функции с переменными в фактическом наборе данных (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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...