首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将tidyeval参数转换为字符串

将tidyeval参数转换为字符串
EN

Stack Overflow用户
提问于 2020-03-11 21:06:50
回答 1查看 181关注 0票数 3

我在R中有一个简单的函数,它使用tidyeval的...。是否可以将这些转换为字符串?

代码语言:javascript
复制
simple_paste <- function(...){
  my_vars <- enquos(...)
  paste(..., sep = "_x_")
}

simple_paste(hello, world)

作为输出,我想得到"hello_x_world"。我也可以考虑使用glue函数或str_c来代替paste,尽管我不确定这样做会更好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-11 21:19:26

将质量转换为字符,然后转换为paste

代码语言:javascript
复制
simple_paste <- function(...) {
  purrr::map_chr(enquos(...), rlang::as_label) %>% 
          paste(collapse="_x_")
   }
simple_paste(hello, world)
#[1] "hello_x_world"

或者另一个选项是eval使用一个表达式

代码语言:javascript
复制
simple_paste <- function(...)  eval(expr(paste(!!! enquos(...), sep="_x_")))[-1]
simple_paste(hello, world)
#[1] "hello_x_world"

如果我们最后需要.csv

代码语言:javascript
复制
simple_paste <- function(...)  eval(expr(paste0(paste(!!! enquos(...), sep="_x_"), ".csv")))[-1]
simple_paste(hello, world)
#[1] "hello_x_world.csv"
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60644445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档