У меня есть постоянное многократное предупреждение о «неизвестном столбце» для всех типов команд (например, str (x) для установки обновлений в пакеты), и я не уверен, как это отладить или исправить.
Предупреждение «неизвестный столбец» явно связано с переменной в tbl_df, которую я переименовал, но предупреждение появляется во всех видах команд, которые, по-видимому, не связаны с tbl_df (например, установка обновлений в пакете, str (x), где x - это просто символьный вектор).
FACEBOOK.1
ли столбец в одном из ваших data.frames и вызываете ли вы егоdf$FACEBOOK.1
где-нибудь в вашем R-скрипте? Мое скромное предположение состоит в том, что это ошибка вtibble
пакете, представленном в версии 1.1: blog.rstudio.org/2016/07/05/tibble-1-1 . Выtibble
явно загрузили?Ответы:
Это проблема со средством диагностики в RStudio (средство, которое показывает предупреждения и возможные ошибки в вашем коде). Он был частично зафиксирован на этом совершают в RStudio v1.1.103 или позже @ Kévin-ushey . Исправление является частичным, потому что предупреждения все еще появляются (хотя и с меньшей частотой). Об этой проблеме сообщалось в виде воспроизводимого примера по адресу https://github.com/rstudio/rstudio/issues/7372, и она была исправлена в запросе на извлечение RStudio v1.4 (будет выпущен)
Доступно несколько обходных путей, выберите решение, которое вы предпочитаете:
Отключите диагностику кода для всех файлов в Предпочтения / Код / Диагностика
Отключите всю диагностику для определенного файла:
Добавьте в начале открытого файла (ов):
Затем сохраните файлы, и предупреждения должны перестать появляться.
Отключите диагностику для переменных, которые вызывают предупреждение
Добавьте в начале открытого файла (ов):
Затем сохраните файлы, и предупреждения должны перестать появляться.
Предупреждения появляются потому, что диагностический инструмент в RStudio анализирует исходный код для обнаружения ошибок, и когда он выполняет диагностические проверки, он обращается к столбцам в вашей таблице, которые не инициализированы, и выдает предупреждение, которое мы видим. Предупреждения не появляются, потому что вы запускаете несвязанные вещи, они появляются, когда выполняется диагностика RStudio (когда файл сохраняется, затем изменяется, когда вы что-то запускаете ...).
источник
Я столкнулся с той же проблемой, и хотя я не знаю, почему это происходит, я смог определить, когда это происходит, и, таким образом, предотвратить это.
Похоже, проблема заключается в добавлении нового столбца, полученного из индексации, в базовый фрейм данных R по сравнению с фреймом данных Tibble. Возьмите этот пример, где вы добавляете новый столбец (
age
) в базовый фрейм данных R:Это работает без возврата предупреждения. Но когда то же самое делается с тиблом, он выдает предупреждение (и, следовательно, я думаю, что вызывает странную, на первый взгляд неспровоцированную проблему множественных предупреждений):
Конечно, есть лучшие способы избежать этого, но я обнаружил, что сначала создание вектора
NA
s делает свою работу:источник
tbl_df
Представляется необходимым для получения предупреждения, но я не уверен , что достаточно. То есть, я думаю, что это предупреждение может появиться, когдаtbl_df
s используются вместе с функциями из других пакетов tidyverse (например, tidyr, dplyr). Небольшая цена за такой критический набор пакетов, но, тем не менее, странная / раздражающая.NA
сработало для меня! (RStudio версия 1.1.456, версия R 3.5.1)NA
, даты, которые будут заполнены позже, будут преобразованы в числовой тип.as.Date(NA_character_)
даетNA
с классомDate
.Я столкнулся с этой проблемой при использовании пакета "dplyr".
Для тех, кто сталкивается с этой проблемой после использования функции «group_by» в библиотеке «dplyr»:
Я обнаружил, что разгруппировка переменных решает проблему предупреждения о неизвестных столбцах. Иногда мне приходилось повторять разгруппировку несколько раз, пока проблема не будет решена.
источник
Преобразование класса в
data.frame
решенную проблему для меня:Заимствовал частичный скрипт из @adts
источник
Warning message: Unknown or uninitialised column: 'bad_column'
У меня была эта проблема, когда я имел дело с функциями tibble и lapply вместе. Тибл, казалось, сохранял вещи как список внутри фрейма данных.
Я решил это с помощью unlist перед добавлением результатов функции lapply в таблицу.
источник
Я тоже столкнулся с этой проблемой, кроме как из-за тиббла, созданного с помощью блока dyplyr. Вот небольшая модификация кода Сабре, чтобы показать, как я пришел к той же ошибке.
источник
Допустим, я хотел выбрать следующие столбцы
Для меня следующее дало предупреждение:
Хотя это сработало, как и ожидалось, хотя, насколько я знаю
dplyr
, это должно быть идентично.источник
Я получаю эти предупреждения, когда переименовываю столбец, используя
dplyr::rename
после прочтения его с помощьюreadr
пакета.Старое имя столбца не переименовано в
spec
атрибуте. Таким образом, удалениеspec
атрибута устраняет предупреждения. Кроме того, удаление класса «spec_tbl_df» кажется хорошей идеей.источник