如何命名由 R 中函数中的实际输入在函数中创建的列表?

问题描述

我的问题是我将数据帧存储在一个空列表中(0 行)。我写了一个函数删除空的数据框,一切正常。不起作用的是新列表将输入作为列表的新名称(这会覆盖旧列表)。我的这个代码示例运行良好:

    ## write a funtion to drop empty dataframes and join non-empty dataframes with full join

rm_empty_df <- function(restr) {
  

  
 restr_1 <<- {{ restr }}[map({{ restr }},function(x) dim(x)[1]) > 0]

  
 restr_2 <<- {{ restr_1 }} %>% reduce(full_join,by="RegionName")
  
}

但是,我希望它做的是为函数提供两个输入,这样它就可以创建 resr_1 以仅在我的列表中包含非空数据帧,并将它们连接到一个名称为输入的数据帧功能。我试过这个:

## write a funtion to drop empty dataframes and join non-empty dataframes with full join

rm_empty_df <- function(restr,name_of_new_dataframe) {
  
 name_of_new_dataframe <- sym(name_of_new_dataframe)
  
 restr_1 <<- {{ restr }}[map({{ restr }},function(x) dim(x)[1]) > 0]

  
 "{ name_of_new_dataframe }" <<- {{ restr_1 }} %>% reduce(full_join,by="RegionName")
  
}

据我所知,这是在 dplyr 中分配变量名的工作原理,但在这里不起作用。感谢您的任何建议!

解决方法

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...