r - 在函数中使用 tukey_hsd() 和在 R 中使用 add_xy_position() 的问题
问题描述
从函数内部的 rstatix 包中add_xy_position()
使用后,我遇到了问题。tukey_hsd()
这就是我的函数的样子:
make_tukey_test <- function (data,variable,grouping_variable){
data %>%
tukey_hsd(variable ~ grouping_variable)
}
当我使用以下代码调用该函数时,它工作得很好,并且测试结果保存在 data.frame 中:
test <- make_tukey_test(data = dat, variable = dat$num_var, grouping_variable = dat$factor_var)
但是,当我尝试像这样添加使用的 x 和 y 坐标dat$factor_var
时add_xy_position()
:
test <- test %>%
add_xy_position(x = “factor_var”)
我收到以下错误消息:
Error: Must group by variables found in `.data`. * Column `grouping_variable` is not found.
但是,当我tukey_hsd()
在我的函数之外使用时,代码工作得非常好,并且坐标被添加到 data.frame 中。
我将非常感谢一些有用的建议,因为我不知道为什么在我的函数中使用它时代码不起作用。
解决方案
我建议将列名作为字符串传递。由于tukey_hsd
接受一个公式对象,您可以使用它reformulate
来创建它并按grouping_variable
原样传递add_xy_position
函数。
这是一个mtcars
数据集的例子。
library(rstatix)
library(dplyr)
dat <- mtcars %>% mutate(cyl = factor(cyl))
make_tukey_test <- function (data,variable,grouping_variable){
data %>%
tukey_hsd(reformulate(grouping_variable, variable)) %>%
add_xy_position(x = grouping_variable)
}
test <- make_tukey_test(data = dat, variable = "mpg", grouping_variable = "cyl")
推荐阅读
- javascript - Angular 6 计时器——用于会话处理
- reactjs - 我需要/如何在我的 React/Redux/Firestore 应用程序中设置服务器?
- html - 容器 div 溢出父级而不是显示水平滚动条
- ios - 如何在swift 4中获取数组索引的整数?
- jquery - Jquery在数组中获取HTML表格列的文本
- powerbi - Power BI - 根据条件从文本字符串中提取数字
- javascript - 自定义 Vue 下拉菜单保持焦点
- vba - 如何将 MAX 与 .FIND 一起使用?在 VBA (Excel) 中
- c# - 生成嵌套在字典中的二维数字数组
- php - 树莓派/PHP + Arduino 串行通信