Код не работает, не удалось найти функцию. Пакет карт

#r #maps

#r #Карты

Вопрос:

Эта ошибка меня полностью поставила в тупик. Сегодня утром мой код работал, сегодня днем — нет.

Я использую пакет maps для ввода кода страны на основе координат долготы и широты в фрейме данных. Код, который я использую: Latest[, COUNTRY := map.where(x = LONGITUDE, y = LATITUDE)]

Сегодня утром это работало нормально, но теперь, сегодня днем, я получаю следующее сообщение об ошибке:

Ошибка в := (СТРАНА, карта.где (x = ДОЛГОТА, y = ШИРОТА)) :
не удалось найти функцию «: =»

Я установил другие пакеты map в отчаянной попытке попытаться идентифицировать случаи, которые получили результат NA, используя этот код, это единственное изменение, которое я внес.

С тех пор у меня:

Перезапущен RStudio

Перезагрузил мой компьютер

Удалил все новые пакеты и перезапустил Rstudo

Удалил и переустановил сам R, включая пакеты

Удалил RStudio и переустановил с той же версией

Снова перезагрузил компьютер

Что бы я ни делал, это просто решительно выдает ту же бессмысленную, по крайней мере, для меня, ошибку.

Я прихожу в отчаяние, ребята, у меня есть крупный проект, который мне нужно преодолеть, и эта ошибка остановила меня!

Комментарии:

1. Это data.table синтаксис — он не имеет ничего общего с Maps пакетом. Убедитесь, что вы загрузили library(data.table) и это Latest класс data.table .

2. Или переключитесь на base синтаксис: Latest$Country = map.where(x = Latest$Longitude, y = Latest$Latitude)) . Или используйте dplyr : library(dplyr); Latest = Latest %>% mutate(Country = map.where(x = Longitude, y = Latitude))

3. Привет @GregorThomas Я удалил data.table и переустановил его (потому что он загружался как библиотека), и прогресс немного продвинулся, поскольку теперь он генерирует новую ошибку: Ошибка в := (COUNTRY, map.where(x = ДОЛГОТА, y = ШИРОТА)): Проверьте, что есть.data.таблица (DT) == TRUE . В противном случае := и := (…) определены для использования в j, только один раз и определенными способами. Смотрите справку («:=»). Но ваше решение dplyr кажется счастливым и сработало. Я просто не могу понять, почему мой исходный код работал сегодня утром и теперь выдает ошибки, хотя загрузка и структура фрейма данных не изменились.

4. Спасибо @GregorThomas Хотя я не понимаю, почему он не работает с оригинальным методом, решение dplyr работает, и я могу запустить этот проект. Вырывал мои волосы!

5. Новая ошибка означает, что вы data.table загрузили, как и должно быть, поэтому := команда распознана. Но вы проигнорировали вторую половину моего комментария » Убедитесь… Latest относится к классу data.table «. Оператор распознан, но он по-прежнему работает только с таблицами данных. Вы могли бы использовать Latest = as.data.table(Latest) или проще setDT(Latest) , чтобы сделать его data.table и ваш код, вероятно, будет работать.