建立一个函数,该函数使用R中的引号计算带有动态变量的值

问题描述

我有很多变量的数据。该示例只有var1var2,但我有var1var50

sample_dta = data.frame(group_id = c(rep(1,3),rep(2,3)),var1.x = seq(1,6),var1.y = seq(21,26),var2.x = seq(31,36),var2.y = seq(41,46))

有了数据,我就有了这样的功能。我试图通过选择两列(apoint1)来获得point2

sample_fun = function(dta,width = 0,height = 0,point1,point2){
  if(width == 1){
    point1 = paste0("var",".x")
    point2 = paste0("var",point2,".x")
  }
  
  if(height == 1){
    point1 = paste0("var",".y")
    point2 = paste0("var",".y")
  }
  
  dta %>% group_by(group_id) %>%
    summarise(a = mean(abs(!!point1 - !!point2),na.rm = T))
  
}

使用此功能,我正在尝试运行sample_fun(dta,width = 1,point1 = 1,point2 = 2),但是它不起作用。我找不到问题所在。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)