#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 и ваш код, вероятно, будет работать.