我想要获取函数的输入参数,以在全局环境中创建具有相同前缀的输出

fun_mtcars <- function(name_ref,...){
  df <- name_ref %>% 
    select(mpg,...) 
  .GlobalEnv$selec_name_ref <- df
}

趣味_mtcar(mtcar,disp)

在GLOBAL环境中,创建了一个名为"selec_name_ref"的新数据框,但我想要一个名为"selec_mtars"的数据框

I can do selec_mtcars <- 趣味_mtcar(mtcar,disp)
but I have a lot of function to execute

推荐答案

我们可以将对象名称提取为带有deparse/substitute的字符串,并在paste中使用该字符串创建新对象,并使用[[而不是$将其分配给.GlobalEnv

fun_mtcars <- function(name_ref,...){
name_ref_str <- deparse(substitute(name_ref))
  df <- name_ref %>% 
    select(mpg,...) 
  .GlobalEnv[[paste0("select_", name_ref_str)]] <- df
}

-正在判断

fun_mtcars(mtcars,disp)
> head(select_mtcars)
                   mpg disp
Mazda RX4         21.0  160
Mazda RX4 Wag     21.0  160
Datsun 710        22.8  108
Hornet 4 Drive    21.4  258
Hornet Sportabout 18.7  360
Valiant           18.1  225

R相关问答推荐

对lme 4对象运行summary()时出错(diag中的错误(from,names = RST):对象unpackedMatrix_diag_get找不到)

寻找图片边缘

如何计算前一行的值,直到达到标准?

用derrr在R中查找组间的重复项

通过使用str_detect对具有相似字符串的组进行分组

用黄土法确定区间

如何在kableextra调用cell_spec()中忽略NA?

在数组索引上复制矩阵时出错

根据列A中的差异变异列,其中行由列B中的相对值标识

plotly hover文本/工具提示在shiny 中不起作用

比较理论阿尔法和经验阿尔法

识别连接的子网(R-igraph)

R如何计算现有行的总和以添加新的数据行

将项粘贴到向量中,并将它们分组为x的倍数,用空格分隔

使用ggplot2中的sec_axis()调整次轴

我需要使用ggplot2制作堆叠条形图

将Geojson保存为R中的shapefile

列间序列生成器的功能

使用nls()函数的非线性模型的半正态图

如果缺少时间,如何向日期-时间列添加时间