【发布时间】:2011-11-22 07:56:48
【问题描述】:
似乎有一些类似的问题,但在这么晚的时候我无法完全理解它们
我正在尝试基于 sql 调用来操作一组数据帧 - 类似这样的
x <- c(3,9,12) # x is of variable length in real world
for (i in 1:length(x)) {
nam <- paste("df",i, sep="")
assign(nam) <- sqlQuery(channel,paste(
"Select myCol from myTable where myVal =",x[i],sep=""));
}
所以我在寻找数据帧 df1、df2、df3,然后我可以将它们组合起来等等。
Andrie 在下面的回答很完美,但我无法将其扩展到两个变量
myQuery <- function(t,x){
sqlQuery(channel,paste("Select myCol from myTable where myTextVal='",t,"' and myVal =", x, sep=""))
}
x <- c(3,9,12)
t <-c("00","10","12")
myData <- lapply(c(t,x), myQuery)
我收到“粘贴错误...参数“x”丢失,没有默认值”
我不确定是不是因为 lapply 向量中混合了数字和字符变量 但是在 sql 语句中应用 as.numeric /as.character 似乎没有帮助
【问题讨论】:
-
我知道现在已经很晚了,所以可能就像您在微睡眠中的感觉一样,您在写实际问题之前不小心按了 ENTER .... :-)
-
这个问题很可能与
assign(nam) <-可能不会做OP想要的事情有关。我认为您需要将所有内容都放在assign调用中。
标签: r for-loop variable-assignment