dcast和汇总到函数中 - 参数丢失
我试图将以下代码正常工作转换为函数。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中的论点的任何线索?
我曾尝试使用以下imlementation“group_by_”以及“require(”dplyr“)”,但它们似乎无关。
我们可以使用table
从base R
table(data)
如果我们有兴趣在一个函数,然后使用与spread
沿group_by_
从tidyr
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
如果我们需要的dcast
从reshape2
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
谢谢你的帮助。你有什么想法如何实现没有tidyr功能?我无法在R studio服务器上使用该库。 – Prometheus
@Prometheus更新了'dcast'的帖子。 – akrun
工程很棒。感谢您的时间和精力! – Prometheus
可能的重复[简单的方法来转换长宽格式与计数在R](http://stackoverflow.com/questions/34417973/easy-way-to-convert-long-to-wide-format -with-counts-in-r) –
感谢您的反馈。其实,正如我所解释的......我在功能的构建方面存在问题。不是重塑本身。所以我不认为它是你指出的问题的重复。 – Prometheus