我可以帮助您翻译以下内容,这是关于IT技术的内容。为了使用dplyr的mutate函数处理数据框和它的列,我需要编写一个函数。
以下是示例:
以下是示例:
multifun <- function(dataf,vari){
mutate(dataf,newvar=vari*2)
}
multifun(mtcars,gear)
这个函数的问题在于变量“gear”不是一个被识别的对象。更具体地说,我收到了以下错误信息:
Error in mutate_impl(.data, named_dots(...), environment()) object 'gear' not found
这是dplyr的mutate在寻找相关变量的环境中出现的问题。
我理解
multifun(mtcars,mtcars$gear)
会给我想要的答案,即
mpg cyl disp hp drat wt qsec vs am gear carb newvar
1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 8
2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 8
3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 8
但我希望看到是否有一种方法可以避免在函数调用中引用数据框中使用的每个变量。
我也知道将mutate从函数调用中取出会毫无问题。即mutate(mtcars, newvar=gear*2)
可以正常工作。然而,我正在尝试理解当放置在函数内部时,dplyr的mutate如何在不同的环境中查找所需的变量。