Применить dplyr :: count_ ко многим фреймам данных - PullRequest
0 голосов
/ 05 января 2019

Я получил ошибку для применения count_ ко всем моим фреймам данных. Я могу вручную применить к одному фрейму данных, но когда я попытался lapply, он показал ошибку

Error in UseMethod("groups") :
  no applicable method for 'groups' applied to an object of class "character"

Я хочу найти уникальные пары долготы и широты в моем наборе данных. Для одного кадра данных я использовал dplyr::count_(d, vars = c('longitude','latitute ')), которые возвращают таблицу пар значений и число счетчиков. Я хочу проверить уникальные пары в каждом из фреймов данных и сохранить их в отдельных файлах. В настоящее время я попытался поместить все свои фреймы данных в список и использовал цикл for.

Для одного фрейма данных я использовал

dplyr::count_(CA, vars = c('locationlongitude','locationlatitude'))
###it returns output like this

   locationlongitude locationlatitude     n
                <dbl>            <dbl> <int>
 1             -72.0             42.6    47
 2             -72.0             42.6    69
 3             -71.8             42.6    59
 4             -71.7             42.5    93
 5             -71.7             42.5    65

Тогда я хочу применить ко всем моим фреймам данных

for (i in files) {
    nam <- paste("B_", i)
    assign(nam, dplyr::count_(i, vars = c('locationlongitude', 'locationlatitude')))
}  

files - это список всех имен моих фреймов данных, и я ожидал, что созданные фреймы данных начинаются с B_ + dataframesname для хранения моих уникальных местоположений из каждого фрейма данных. Но есть

Error  in UseMethod("groups") : 
  no applicable method for 'groups' applied to an object of class "character". 

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

Error in assign(nam, dplyr::count_(i, vars = c("locationlongitude", "locationlatitude"))) :
  variable names are limited to 10000 bytes
In addition: Warning message: In assign(nam, dplyr::count_(i, vars = c("locationlongitude", "locationlatitude"))) :
  only the first element is used as variable name

Я считаю, что должен быть эффективный способ применить функцию к нескольким фреймам данных и вернуть другой фрейм данных. Но я застрял. Буду признателен за любые комментарии!

...