R 如何按组进行变异?

R 如何按组进行变异?,r,dataframe,group-by,dplyr,mutate,R,Dataframe,Group By,Dplyr,Mutate,我试图根据每组的平均函数变异一个新变量。我尝试使用R中提供的预加载数据帧“ToothGrowth”运行此代码 输出结果不正确,似乎是将每个组的平均值作为列表循环,而不是分配给每个组 图中显示了我试图实现的目标: data("ToothGrowth") head(ToothGrowth) tg.tb01<-ToothGrowth %>% group_by(supp, dose) %>% # mydata has 3 more variables. summarise(m

我试图根据每组的平均函数变异一个新变量。我尝试使用R中提供的预加载数据帧“ToothGrowth”运行此代码

输出结果不正确,似乎是将每个组的平均值作为列表循环,而不是分配给每个组

图中显示了我试图实现的目标:

data("ToothGrowth")
head(ToothGrowth)

tg.tb01<-ToothGrowth %>% 
group_by(supp, dose) %>% # mydata has 3 more variables. 
  summarise(mean = mean(len)) %>% 
  print()
ToothGrowth %>% 
  group_by(supp) %>%
  mutate(submean2 = len - tg.tb01$mean/tg.tb01$dose)

数据(“牙齿生长”)
头部(牙齿生长)
tg.tb01%
分组依据(支持,剂量)%>%#mydata还有3个变量。
总结(平均值=平均值(len))%>%
打印()
牙齿生长%>%
分组依据(支持)%>%
突变(亚组2=len-tg.tb01$平均值/tg.tb01$剂量)

如果我理解正确,您应该改用。请用数字指定所需的输出

tg.tb01<-ToothGrowth %>% 
    group_by(supp, dose) %>%
    mutate(mean = mean(len)) %>%
    ungroup() %>%
    group_by(supp) %>%
    mutate(submean2 = len - mean/dose)
tg.tb01%
第组(补充,剂量)%>%
变异(平均值=平均值(len))%>%
解组()%>%
分组依据(支持)%>%
突变(亚组2=len-平均值/剂量)

您不需要另一个数据集来存储平均值。请看下面:

库(dplyr)
图书馆(数据集)
牙齿生长%>%
第组(补充,剂量)%>%
变异(lenmean=平均值(len),
亚组2=透镜-透镜平均值/剂量)
#>#A tible:60 x 5
#>#组:补充,剂量[6]
#>len supp剂量lenmean Subman2
#>             
#>1 4.2 VC 0.5 7.98-11.8
#>2 11.5 VC 0.5 7.98-4.46
#>3 7.3 VC 0.5 7.98-8.66
#>4.5.8 VC 0.5 7.98-10.2
#>5.6.4 VC 0.5 7.98-9.56
#>6 10 VC 0.5 7.98-5.96
#>7.11.2 VC 0.5 7.98-4.76
#>8 11.2 VC 0.5 7.98-4.76
#>9.5.2 VC 0.5 7.98-10.8
#>107 VC 0.57.98-8.96
#> # ... 还有50行

如果您能用示例中的数字举例说明您希望输出数据的样子,那就太好了。