sqldf-更改语法以将新列添加到数据框

时间:2018-10-16 09:30:20

标签: r sqldf

我想通过sqldf向数据框添加一个新字段。

> data(mtcars)
> library(sqldf)
> sqldf("alter table mtcars add newfield  int not null")
Error in result_create(conn@ptr, statement) : 
  Cannot add a NOT NULL column with default value NULL
> 
> sqldf("alter table mtcars add newfield  int")
data frame with 0 columns and 0 rows
Warning message:
In result_fetch(res@ptr, n = n) :
  Don't need to call dbFetch() for statements, only for queries

我从上一条命令中得到一个空的数据框。 sql表达式似乎还可以。但是我不知道怎么了。

1 个答案:

答案 0 :(得分:2)

我们可以使用sqldf添加新列(我不确定是否要添加null列):

data(mtcars)
library(sqldf)
sqldf(c("alter table mtcars add newfield numeric","select * from mtcars"))

样本输出:

     mpg cyl  disp  hp drat    wt  qsec vs am gear carb newfield
1  21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4       NA
2  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4       NA
3  22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1       NA
4  21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1       NA