r - dplyr group_by 和 mutate,如何访问数据框?

标签 r group-by dplyr

当使用 dplyr 的“group_by”和“mutate”时,如果我理解正确,数据帧会根据 group_by 参数拆分为不同的子数据帧。例如,使用以下代码:

 set.seed(7)
 df <- data.frame(x=runif(10),let=rep(letters[1:5],each=2))
 df %>% group_by(let) %>% mutate(mean.by.letter = mean(x))

mean() 依次应用于与 a & e 之间的字母对应的 5 个 sub-dfs 的 x 列。

因此,您可以操作子 dfs 的列,但您可以访问子 dfs 本身吗?令我惊讶的是,如果我尝试:
 set.seed(7)
 data <- data.frame(x=runif(10),let=rep(letters[1:5],each=2))
 data %>% group_by(let) %>% mutate(mean.by.letter = mean(.$x))

结果是不同的。从这个结果,可以推断出“。” df 不连续表示子 dfs,而仅表示“数据”(group_by 函数不会改变任何内容)。
原因是我想使用一个 stat 函数,该函数将数据框作为每个子 dfs 的参数。
谢谢!

最佳答案

我们可以在do内使用

data %>%
    group_by(let ) %>% 
    do(mutate(., mean.by.letter = mean(.$x)))

关于r - dplyr group_by 和 mutate,如何访问数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36551708/

相关文章:

r - R 中的 diag() 函数

oracle - 按两个字段分组,并在第一个字段上使用 count()

r - 如何使用dplyr的filter()和R-base的ifelse()过滤数据帧?

r - 按年份简化数据框并计算变化百分比

linux - 将时间戳添加到 R CMD BATCH 输出文件名

regex - 如何提取R中字符之间的数字

r - Flexdashboard:将 react 值传递给图表标题

python - pandas groupby 基于 n-1 索引记录的值

php - MYSQL Group by weekofyear 停止工作

r - dplyr 输出类 data.frame