dcast 和 summary 到函数中 - 参数丢失
dcast and summary into a function - argument lost
我正在尝试将以下可以正常工作的代码转换为一个函数。
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")",但它们似乎无关。
我们可以使用 table
从 base R
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
如果我们需要 reshape2
的 dcast
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
我正在尝试将以下可以正常工作的代码转换为一个函数。
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")",但它们似乎无关。
我们可以使用 table
从 base R
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
如果我们需要 reshape2
dcast
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