首页 > 解决方案 > 将 dplyr::count_ 应用于许多数据帧

问题描述

将 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

我相信应该有一种有效的方法将函数应用于多个数据帧并返回另一个数据帧。但我被困住了。我很感激任何评论!

标签: rfor-loopdplyrlapply

解决方案


推荐阅读