将字符串转换为 R 中 dplyr 表达式的正确方法?

问题描述 投票:0回答:1

我正在尝试在 R 中创建动态 SQL 拉取。我正在使用 dplyr 来创建拉取。但是,我还没有找到一种方法可以使用 dplyr 将字符串正确转换为表达式。

例如,下面的代码就可以工作。

  data("CO2")
  
  CO2_mod <- CO2 %>%
    mutate(new_c = trimws(paste0(Plant, Type)))

但是,当我尝试下面的任何一个时,它们都不起作用。有谁知道如何将此字符串转换为我可以在 dplyr pull 中使用的字符串。

  command <- 'mutate(new_c = trimws(paste0(Plant, Type)))'
  expr <- parse_expr(command)
  expr <- str2lang(command)
  expr <- str2expression(command)

  CO2_mod <- CO2 %>%
    expr #Tried this too for all combinations as well eval(expr)
sql r string dplyr expression
1个回答
0
投票

这似乎就是您正在寻找的:

library(dplyr)

df <- data.frame(
  Plant = c("Rose", "Tulip", "Daisy"),
  Type = c("Flower", "Flower", "Flower")
)

command <- 'df <- mutate(df, new_c = trimws(paste0(Plant, Type)))'

expr <- parse(text = command)

eval(expr)

print(df)

  Plant   Type       new_c
1  Rose Flower  RoseFlower
2 Tulip Flower TulipFlower
3 Daisy Flower DaisyFlower

步骤是将数据帧包含在字符串中,然后使用

parse()
将字符串解析为表达式,然后使用
eval()
函数计算表达式。当数据框打印到控制台时,您将看到它已经发生了变化。我希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.