将可选的数据框列转换为自定义功能

问题描述 投票:0回答:1
library(dplyr) df <- data.frame(x = c(1, 2, 3, 4, 5), y = c(11, 12, 13, 14, 15)) sample_fun <- function(df, x, y) { df <- df %>% mutate(z = {{x}} * {{y}}) } df_out <- sample_fun(df, x, y)

我希望使数据框列之一可选,然后使用

!if.null()
进行函数测试。如果这是一个对象,而不是数据框架列,我会这样做:

sample_fun <- function(df, x, y = NULL) { if(!is.null(y)) { df <- df %>% mutate(z = {{x}} * y) } else(df <- df %>% mutate(z = {{x}})) } df_out <- sample_fun(df, x) df_out2 <- sample_fun(df, x, y)

,但是,我无法弄清楚如何检查数据列的存在。 

if(!is.null(y))
if(!is.null({{y}}))

返回。当y是数据框列而不是独立对象时,检查y的存在的最佳方法是什么?

	
一个选项是检查
Error: object 'y' not found
变量是否存在在函数调用环境中,而不是将
y

用作占位符。
r function nse
1个回答
0
投票


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.