使用SQLite生成并插入新列

使用SQLite生成并插入新列,sqlite,r,Sqlite,R,我尝试创建一个包含两列数字的dataframe,然后创建一个包含两个数字商的新列,然后插入商列,如下所示: df <- data.frame(a=1:3,b=c(3,NA,5)) df <- sqldf(c("update df set b=4 where b is null", "select * from main.df"),method="raw") df_quot <- sqldf("select a,a/b[quot] from df") df <- sqldf

我尝试创建一个包含两列数字的dataframe,然后创建一个包含两个数字商的新列,然后插入商列,如下所示:

df <- data.frame(a=1:3,b=c(3,NA,5))
df <- sqldf(c("update df set b=4 where b is null", "select * from main.df"),method="raw")
df_quot <- sqldf("select a,a/b[quot] from df")
df <- sqldf("select df_quot.a,b,quot from df, df_quot
             where df.a = df_quot.a")
我尝试使用一行代码来实现这一点,如下所示,但失败了:

df <- sqldf("select (select a,a/b[quot] from df) df_quot, a, b from df join df_quot using(a)")
Error in sqliteExecStatement(con, statement, bind.data) : 
  RS-DBI driver: (error in statement: only a single result allowed for a SELECT that is part of an expression)

我做错了什么?谢谢。

我认为这是一种可能性,还有其他更好的选择吗

df <- sqldf("select * from df left join (select a,a/b[quot] from df) df_quot using (a)")

我想这更多的是一个学习sqlite的练习,而不是一个实际问题,但是总有一个不使用sqlite的选项:f[is.naf$b,b]