sqldf中的奇怪sql语句和R代码

时间:2016-08-15 09:10:17

标签: sql r sqldf

我必须维护一些R代码,编写代码的人不再在这里了。

我在他的代码中发现了一些奇怪的sql语句,我不确定它们是什么意思。这是其中之一:

sqldf(paste("select ", i," i , * from simTypeFile union all select * from simTypeFiles", sep=""))

i是一个从零增加到x的索引。我希望select关键字后跟一个column_name或一个星号。在这种情况下,它后跟一个整数i,一个空格,一个字符串i和一个星号。

要查询的表没有任何具有数字i或字符串“i”的列。 select语句后面的那些字符是什么意思?

1 个答案:

答案 0 :(得分:1)

我认为他们正在准备用于模拟的数据,并添加i列用于索引并将其命名为i(以明确使用 AS 命名列,例如:select 1 AS i),请考虑以下示例:

# emprty data.frame to fill in
simTypeFiles <- data.frame(i = numeric(0), speed = numeric(0), dist = numeric(0))

# dummy data
simTypeFile <- cars[1:3,]

# then loop and rbind - union
for(i in 1:3){
  simTypeFiles <- 
    rbind(
      simTypeFiles,
      sqldf(paste("select ", i," i , * from simTypeFile union all select * from simTypeFiles", sep = ""))
    )
}

simTypeFiles