将dplyr :: count_应用于许多数据帧

时间:2019-01-05 19:43:11

标签: r for-loop dplyr lapply

将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

我认为应该有一种有效的方法将功能应用于多个数据帧并返回另一个数据帧。但是我被困住了。我将不胜感激!

0 个答案:

没有答案