【发布时间】:2014-10-30 08:31:23
【问题描述】:
我想从数据框中获取值并将它们粘贴到可用作 sql 查询的文本字符串中。在 SAS 我会这样做
proc sql noprint; Select Names into :names separated by ", " from df; quit;
这将创建一个存储所有名称的变量 &name。喜欢:ID、姓名、帐户。我想在 R 中做同样类型的事情,但不知道怎么做。我可以创建一个名称用逗号分隔的向量,每个都用引号括起来,我可以使用 noquote 函数删除引号并将它们放在向量中,但我无法在另一个粘贴语句中获取元素以添加“SELECT “和从。我无法将其全部粘贴。有没有办法提取 Column 上的值并创建一个可在 R 中用作 SQL 查询的文本字符串?这是我在 R 中尝试过的:
name = c("Id", "IsDeleted", "Name", "Credit__Loan__c")
label = c("Record Id", "Deleted", "ID", "Loan")
df = data.frame(name, label)
names(df) <- c("name", "label")
as.query.fields = noquote(paste(df$name, collaspe=", "))
as.query.final <- paste("SELECT " , noquote(paste(df$name, collaspe=", ")), " id FROM Credit_Amortization_Schedule__c")
【问题讨论】:
-
我认为
whisker或brew包在这里会有所帮助。 -
不知道你有没有意识到,但是你有
collapse拼写错误(你有collaspe),这会影响最终的结果。您不需要noquote函数(它只影响对象的打印方式),您可以直接在sqlQuery(或类似函数)的调用中传递as.query.final对象来执行查询。 -
是的,感谢您了解拼写。那只是一个错字,而不是问题。另外,我使用 R 来查询 Salesforce(使用 rforcecom 和 soql),所以我真的需要控制 Select 语句的创建,所以 as.query.final 中的 sqlQuery 不起作用。我唯一能做的就是使用 cat 方法筛选并复制和粘贴结果,然后删除 from 语句之前的尾随逗号。唉,在我的懒惰中,我希望能够完全自动化它,但我做不到。谢谢