我正在尝试在 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)
这似乎就是您正在寻找的:
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()
函数计算表达式。当数据框打印到控制台时,您将看到它已经发生了变化。我希望这有帮助!