Paste0在Rstudio中工作,不在Rscript中工作

时间:2019-01-28 01:44:47

标签: r

有一个包含一些变量的字符串,我需要传递给一个在Rstudio中工作100%的循环,但会给我一个:

"cannot coerce type 'closure' to vector of type 'character'"

在Rscript中运行时。

smalldata <- data.frame(V1 = c(1,2,3,4,5)

tablevar <- mondaysdata


sqljoin <- paste("select * from DBO.", tablevar, " p join DBO.TABLE2 l on (p.ID1=l.ID2) where p.ID1 =", "'", row, "'", sep = " ", collapse = ",")
for(row in smalldata$V1) {
  df1 <- as.data.table(sqlQuery(con, sqljoin))
  if (nrow(df1) == 0) {
    next
  }
  df1[,function1(.SD)]
}

同样,一切都在Rstudio中100%正常运行,并且逐字是相同的精确代码。我在脚本顶部调用方法。 Smalldata是一列,10,000行ID字符串。 Tablevar只是我们根据日期更改的名称。例如。 mondaysdata,tuesdaysdata等。

1 个答案:

答案 0 :(得分:0)

在这一行

sqljoin <- paste("select * from DBO.", tablevar,
                 " p join DBO.TABLE2 l on (p.ID1=l.ID2) where p.ID1 =", "'", row, "'",
                 sep = " ", collapse = ",")

您在定义之前使用rowrow是一个函数,因此会显示错误消息。