r - dcast 和汇总到一个函数中 - 参数丢失

标签 r function dplyr dcast

我正在尝试将以下可以正常工作的代码转换为一个函数。

result_check <- data %>% 
  group_by(column, target)  %>%
  summarise(Unique_Elements = n()) %>%
  dcast(column_code ~ target, value.var="Unique_Elements")

例如,如果我们采用以下数据集:

column1 target
  AA      YES
  BB      NO
  BC      NO
  AA      YES

代码将根据目标变量聚合数据集,如下所示:

column1    YES   NO
   AA       2    0
   BB       0    1
   BC       0    1  

这就是我构造函数的方式:

aggregate_per_group <- function(column) {
data %>% 
  group_by(column, target)  %>%
  summarise(Unique_Elements = n()) %>%
  dcast(column ~ target, value.var="Unique_Elements")}

但我得到 - 错误:未知变量分组依据:列。我知道这是一个基本问题,但是有什么线索说明我为什么会失去 group_by 中的参数吗?

我尝试使用以下实现“group_by_”以及“require(“dplyr”)”,但它们似乎无关。

最佳答案

我们可以使用base R中的table

table(data)

如果我们对某个函数感兴趣,请使用 group_by_ 以及 tidyr 中的 spread

aggregate_per_group <- function(column) {
     data %>% 
        group_by_(column, "target")  %>%
        summarise(Unique_Elements = n()) %>%
        spread(target, Unique_Elements, fill = 0)
 }

library(dplyr)
library(tidyr)
aggregate_per_group("column1")
#  column1    NO   YES
# *   <chr> <dbl> <dbl>
#1      AA     0     2
#2      BB     1     0
#3      BC     1     0

如果我们需要来自reshape2dcast

library(reshape2)
aggregate_per_group <- function(column) {
    data %>% 
       group_by_(column, "target")  %>%
       summarise(Unique_Elements = n()) %>%
       dcast(data = ., paste(column,  '~ target'), 
              value.var="Unique_Elements", fill = 0)
 }

aggregate_per_group("column1")
#   column1 NO YES
#1      AA  0   2
#2      BB  1   0
#3      BC  1   0

关于r - dcast 和汇总到一个函数中 - 参数丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41329845/

相关文章:

r - facet_wrap 并为 ggplot2 中的分类变量分配颜色

R 使用 r-script 与 Node 脚本集成

r - 清除 R session 分配的内存(gc() 没有帮助!)

php - 在 PHP 中定位函数定义的最佳实践

r - 使用 dplyr 添加另一个分组

r - dplyr Mutate 中的错误 - 遍历列以生成图形

r - 当名称存储在不同的向量中时如何为对象分配名称

r 使用带有 NA 的行来 reshape 数据以识别新列

c++ - C++模板类-继承调用错误的函数

javascript - javascript函数定义中的对象