Невозможно найти унаследованный метод для функции select ’для подписи data« data.frame »’ - PullRequest
1 голос
/ 02 июня 2019

Я пытаюсь выбрать столбцы из фрейма данных с помощью следующего кода.

library(dplyr)
dv %>% select(LGA)
select(dv, LGA) 

Они оба потерпят неудачу с ошибкой

Невозможно найти унаследованный метод для функции ‘select’ для подписи ‘« data.frame »’

Но следующий код будет в порядке.

dplyr::select(dv, LGA)

Это конфликт функций в пакетах?

Все импортированные библиотеки имеют следующий вид.

library(jsonlite)
library(geojsonio)
library(dplyr)
library(ggmap)
library(geojson)
library(leaflet)
library(mapview)
library(RColorBrewer)
library(scales)

Я новичок в R, так что запутался, как вы, ребята, решаете подобные проблемы?

1 Ответ

2 голосов
/ 02 июня 2019

Существует отличный пакет, который помогает при конфликтах пакетов, который называется конфликта .

Если вы наберете search() в своей консоли, вы увидите упорядоченный вектор пакетов, который называется «список поиска». Когда вы вызываете select, R выполняет поиск по этому «пути поиска» и сопоставляет первую функцию с именем select. Когда вы вызываете dplyr::select, вы вызываете его напрямую из пространства имен dplyr, поэтому функция работает, как и ожидалось.

Вот пример использования conflicted. Мы загрузим растр и dplyr, которые оба имеют функцию select.

library(dplyr)
library(raster)
library(conflicted)

d <- data.frame(a = 1:10, b = 1:10)

Теперь, когда мы вызываем select, нам предлагается точный конфликт:

> select(d, a)
Error: [conflicted] `select` found in 2 packages.
Either pick the one you want with `::` 
* raster::select
* dplyr::select
Or declare a preference with `conflict_prefer()`
* conflict_prefer("select", "raster")
* conflict_prefer("select", "dplyr")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...