有一个包含一些变量的字符串,我需要传递给一个在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等。
答案 0 :(得分:0)
在这一行
sqljoin <- paste("select * from DBO.", tablevar, " p join DBO.TABLE2 l on (p.ID1=l.ID2) where p.ID1 =", "'", row, "'", sep = " ", collapse = ",")
您在定义之前使用row
。 row
是一个函数,因此会显示错误消息。