将dplyr链转换为函数

将dplyr链转换为函数,r,function,dplyr,tidyverse,R,Function,Dplyr,Tidyverse,嗨,我只是想弄清楚如何将dplyr链转换成R中的函数。所以位置和速度变量有三个潜在值。位置:“rb”、“wr”、“te”。速度是:“快”、“中”、“慢”。我的桌头看起来像这样: 定位速度码 rb fast 805 西铁924 rb中等503 te fast 803 wr中等1002 rb fast 920 特斯拉夫530 rb fast 920 wr慢速920 我正在尝试创建一个函数,允许我从一个位置的总码数中找到速度的比例(例如中等)。我知道如何用dplyr来做。这给了我正确的答案: df%

嗨,我只是想弄清楚如何将dplyr链转换成R中的函数。所以位置和速度变量有三个潜在值。位置:“rb”、“wr”、“te”。速度是:“快”、“中”、“慢”。我的桌头看起来像这样:

定位速度码
rb fast 805
西铁924
rb中等503
te fast 803
wr中等1002
rb fast 920
特斯拉夫530
rb fast 920
wr慢速920
我正在尝试创建一个函数,允许我从一个位置的总码数中找到速度的比例(例如中等)。我知道如何用dplyr来做。这给了我正确的答案:

df%>%
分组依据(位置、速度)%>%
总结(码数=总和(码数))%>%
分组人(职位)%>%
变异(频率=码/总和(码))
位置速度码频率
1 rb fast 1729 0.200
2 rb中型4741 0.547
3 rb慢速2196 0.253
我是否可以把它转换成一个函数,输入位置和速度,得到正确的比例?当我想输入位置或速度时,我的意思是能够在函数中输入例如“wr”和“medium”,并获得中速球员在“wr”位置的码数比例。谢谢你这有帮助吗

lookup_func <- function(homeworld, species) {

  # You could keep this part outside of the function if you just want to calc once
  my_lookup_table <- dplyr::starwars %>%
    group_by(homeworld, species) %>%
    summarise(across(where(is.numeric), mean), .groups = "drop")
  
  # Here we filter using the input text and the "curly curly" or "embrace" operator
  #   in "tidyeval" that serves to transport the input into
  #   the context of the function.
  my_lookup_table %>%
    filter(homeworld == {{ homeworld }},
           species   == {{ species }})
}
lookup\u func%
总结(跨越(其中(为数字)、平均值),.groups=“drop”)
#这里我们使用输入文本和“curly-curly”或“拥抱”操作符进行过滤
#在“tidyeval”中,用于将输入传输到
#函数的上下文。
我的查找表格%>%
过滤器(homeworld=={{homeworld}},
物种=={{species}})
}
试一试:

lookup_func("Tatooine", "Human")

# A tibble: 1 x 5
  homeworld species height  mass birth_year
  <chr>     <chr>    <dbl> <dbl>      <dbl>
1 Tatooine  Human     179.    NA       47.5
查找函数(“Tatooine”、“Human”) #一个tibble:1 x 5 母国物种高度质量出生年 1塔图因人179。NA 47.5
有关“curly-curly”操作符的更多信息,我建议查看和

您能否再详细说明一下您希望“输入位置和速度并获得正确比例”的内容?[请编辑问题以添加此内容。]仅供参考,您的摘要统计数据未反映此示例数据提供的内容。您好。所以位置和速度变量有三个潜在值。位置:“rb”、“wr”、“te”。速度是:“快”、“中”、“慢”。当我想输入位置或速度时,我的意思是能够在一个函数中输入例如“wr”和“medium”,并获得中速玩家在位置“wr”@r2evans正确时的码数比例。这不是上面的全部表格。只是其中的一部分