Сравнение (1) в функции R возвращает возможно только для атомарных или списочных типов - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть следующая функция:

 agegroup <- function(data, column) {

 setDT(data)

 if (class(data[[column]] == "integer")) {

  data[column <20, agegroup := "0-19"]
  data[column >= 20 & column < 25, agegroup := "20-24"]
  data[column >= 25 & column <30, agegroup := "25-29"]
  data[column >= 30 & column <35, agegroup := "30-34"]
  data[column >= 35 & column <40, agegroup := "35-39"]
  data[column >= 40 & column <45, agegroup := "40-44"]
  data[column >= 45 & column <50, agegroup := "45-49"]
  data[column >= 50 & column <55, agegroup := "50-54"]
  data[column >= 55 & column <60, agegroup := "55-59"]
  data[column >= 60 & column <65, agegroup := "60-64"]
  data[column >= 65 & column <70, agegroup := "65-69"]
  data[column >= 70 & column <75, agegroup := "70-74"]
  data[column >= 75 & column <80, agegroup := "75-79"]
  data[column >= 80 & column <85, agegroup := "80-84"]
  data[column >= 85, agegroup := "85+"]

  return(data)

  } else {

    print("Column type is not integer.")

  }
}

Функция должна проверить, является ли указанный столбец целочисленным типом.Однако, когда я делаю сравнение, я получаю следующую ошибку:

Error in data[[column]] == integer : 
  comparison (1) is possible only for atomic and list types

Редактировать:

Я поместил оригинальную функцию выше.

Кроме того, Пример данных:

structure(list(age = c(87L, 70L, 69L, 68L, 68L, 68L)), class = c("data.table", 
"data.frame"), row.names = c(NA, -6L))

Вызов функции:

test <- agegroup(test, "age")

Я не уверен, в чем проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...