Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用group_映射将函数应用于分组的TIBLES中的每个组_R_Function_Dplyr_Tibble - Fatal编程技术网

使用group_映射将函数应用于分组的TIBLES中的每个组

使用group_映射将函数应用于分组的TIBLES中的每个组,r,function,dplyr,tibble,R,Function,Dplyr,Tibble,如何使用group_map将自定义函数应用于分组TIBLE中的每个组。我想找到每组的平均重量(kg),并为每个病例创建一个新列。因此,每组的每个病例都应该有相同的平均体重 # custom function meanKG = function(vector) { return(mean(vector, na.rm=TRUE) / 2.2) } df = mtcars %>% group_by(cyl) # A tibble: 32 x 11 # Groups: cyl [3]

如何使用group_map将自定义函数应用于分组TIBLE中的每个组。我想找到每组的平均重量(kg),并为每个病例创建一个新列。因此,每组的每个病例都应该有相同的平均体重

# custom function
meanKG = function(vector) {
  return(mean(vector, na.rm=TRUE) / 2.2)
}

df = mtcars %>% group_by(cyl)

# A tibble: 32 x 11
# Groups:   cyl [3]
     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
 * <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
 1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
 2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
 3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
 4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
 5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
 6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
 7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
 8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
 9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
# ... with 22 more rows
但它一直在说object.wt未找到


我做错了什么?

如果这是您想要的,您可以使用mutate:

mtcars %>% group_by(cyl) %>% mutate(meanKG = meanKG(wt))

# A tibble: 32 x 12
# Groups:   cyl [3]
     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb meanKG
   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl>
 1  21       6  160    110  3.9   2.62  16.5     0     1     4     4   1.42
 2  21       6  160    110  3.9   2.88  17.0     0     1     4     4   1.42
 3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1   1.04
 4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1   1.42
 5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2   1.82
 6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1   1.42
 7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4   1.82
 8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2   1.04
 9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2   1.04
10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4   1.42
# ... with 22 more rows

mtcars%>%组(cyl)%>%突变(平均千克=平均千克(重量))
#A tibble:32 x 12
#组别:共青团[3]
mpg气缸显示hp drat重量qsec与am齿轮carb平均重量kg
1  21       6  160    110  3.9   2.62  16.5     0     1     4     4   1.42
2  21       6  160    110  3.9   2.88  17.0     0     1     4     4   1.42
3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1   1.04
4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1   1.42
5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2   1.82
6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1   1.42
7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4   1.82
8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2   1.04
9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2   1.04
10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4   1.42
# ... 还有22排

要使用
组映射
您需要返回一个TIBLE

meanKG = function(vector) {
  return(tibble::tibble(mean = mean(vector, na.rm=TRUE) / 2.2))
}
然后应用该函数

library(dplyr)

mtcars %>%
  group_by(cyl) %>%
  group_map(~meanKG(.x$wt))

#     cyl  mean
#   <dbl> <dbl>
#1     4  1.04
#2     6  1.42
#3     8  1.82
库(dplyr)
mtcars%>%
组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别
组图(~meanKG(.x$wt))
#共青团平均数
#    
#1     4  1.04
#2     6  1.42
#3     8  1.82
library(dplyr)

mtcars %>%
  group_by(cyl) %>%
  group_map(~meanKG(.x$wt))

#     cyl  mean
#   <dbl> <dbl>
#1     4  1.04
#2     6  1.42
#3     8  1.82