【发布时间】:2020-07-09 16:59:56
【问题描述】:
例如:
df <- data.frame("Treatment" = c(rep("A", 2), rep("B", 2)), "Price" = 1:4, "Cost" = 2:5)
我想通过对所有变量的处理来汇总数据,并将它们放在一起,所以我首先定义一个函数来为每个变量执行此操作,然后再rbind它们。
SummarizeFn <- function(x,y,z) {
df1 <- x %>% group_by(Treatment) %>%
summarize(n = n(), Mean = mean(y), SD = sd(y)) %>%
df1$Var = z # add a column to show which variable those statistics belong to.
}
SumPrice <- SummarizeFn(df, df$Price, "Price")
但是,结果是:
Treatment n Mean SD Var
<fct> <int> <dbl> <dbl> <chr>
1 A 2 2.5 1.29 Price
2 B 2 2.5 1.29 Price
它们是所有观察值的平均值和标准差,但不是按治疗分组的观察值。这里有什么问题?
如果我将代码从函数环境中取出,它完全可以正常工作。请帮忙,谢谢。
如果你有更好的方法来实现我的目的,那就太好了!谢谢!
【问题讨论】: