我正尝试使用sqldf
中的示例4,使用abbr <- data.frame (species = levels(iris[,"Species"]),
abbr = c("s","ve","vi"))
sqldf("select abbr, avg(Sepal_Length) from iris natural join abbr group by species")
sqldf("select abbr, avg(Sepal_Length) from iris join abbr using(Species) group by Species")
在R数据框中插入新列
abbr
两个sqldf命令都有效,但是当我将abbr的列名从abbr_col
更改为abbr
时失败,我不知道应该更改sql语法中的哪个> abbr <- data.frame (species = levels(iris[,"Species"]),
+ abbr_col = c("s","ve","vi"))
> sqldf("select abbr_col, avg(Sepal_Length) from iris natural join abbr_col group by species")
Error in sqliteExecStatement(con, statement, bind.data) :
RS-DBI driver: (error in statement: no such table: abbr_col)
感谢。
abbr
我尝试将所有abbr_col
重命名为{{1}},但失败了。
答案 0 :(得分:2)
一个“abbr”是表名,另一个是列名:
abbr_table <- data.frame (species = levels(iris[,"Species"]),
abbr_col = c("s","ve","vi"))
sqldf("select abbr_col, avg(Sepal_Length) from iris natural join abbr_table group by species")
答案 1 :(得分:0)
如果要将列从abbr
重命名为abbr_col
,则需要将abbr
次出现的所有更改为abbr_col
。< / p>