用 R 中的查询替换表达式参数
Replace Expression Parameter With Query in R
我有一个表达式 max(51)。我想用数据库中与此 ID 相关的值替换表达式中的参数,即 51。所以我替换的表达式如下:
max(dbGetQuery(con,"SELECT VALUE FROM STUD WHERE ID=51"))
其中 con 是 MySQL 连接对象。
我尝试了以下方法从表达式
中提取参数
PARAMETER <- gsub(".*\((.*)\)$", "\1", "MAX(51)");
现在我的最终表情会变成这样:
max(dbGetQuery(con,"SELECT VALUE FROM STUD WHERE ID=PARAMETER"));
那么如何在 R 中完成这种替换?这只是一个单一的操作数表达式。是否可以使用更复杂的表达式,例如
max(51)+min(52)-53
谢谢..
我是通过以下方式实现的:
operand <- "max(51)";
PARAMETER <- gsub(".*\((.*)\)$", "\1", operand);
QUERY=gsub("PARAMETER",PARAMETER,"SELECT VALUE FROM STUD WHERE ID='PARAMETER'");
Final_SubExpression <- gsub(PARAMETER,"dbGetQuery(con,QUERY)",operand);
Result <- eval(parse(text=Final_SubExpression));
Result;
或
operand <- "max(51)";
PARAMETER <- gsub(".*\((.*)\)$", "\1", operand);
QUERY=sprintf("SELECT VALUE FROM STUD WHERE ID = '%s'", PARAMETER);
Final_SubExpression <- gsub(PARAMETER,"dbGetQuery(con,QUERY)",operand);
Result <- eval(parse(text=Final_SubExpression));
Result;
我有一个表达式 max(51)。我想用数据库中与此 ID 相关的值替换表达式中的参数,即 51。所以我替换的表达式如下:
max(dbGetQuery(con,"SELECT VALUE FROM STUD WHERE ID=51"))
其中 con 是 MySQL 连接对象。 我尝试了以下方法从表达式
中提取参数PARAMETER <- gsub(".*\((.*)\)$", "\1", "MAX(51)");
现在我的最终表情会变成这样:
max(dbGetQuery(con,"SELECT VALUE FROM STUD WHERE ID=PARAMETER"));
那么如何在 R 中完成这种替换?这只是一个单一的操作数表达式。是否可以使用更复杂的表达式,例如
max(51)+min(52)-53
谢谢..
我是通过以下方式实现的:
operand <- "max(51)";
PARAMETER <- gsub(".*\((.*)\)$", "\1", operand);
QUERY=gsub("PARAMETER",PARAMETER,"SELECT VALUE FROM STUD WHERE ID='PARAMETER'");
Final_SubExpression <- gsub(PARAMETER,"dbGetQuery(con,QUERY)",operand);
Result <- eval(parse(text=Final_SubExpression));
Result;
或
operand <- "max(51)";
PARAMETER <- gsub(".*\((.*)\)$", "\1", operand);
QUERY=sprintf("SELECT VALUE FROM STUD WHERE ID = '%s'", PARAMETER);
Final_SubExpression <- gsub(PARAMETER,"dbGetQuery(con,QUERY)",operand);
Result <- eval(parse(text=Final_SubExpression));
Result;