sqldf - 改变语法以将新列添加到数据框
sqldf - Alter syntax to add new column to data frame
我想通过 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 表达式似乎没问题。但是不知道怎么回事。
我们可以使用 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
我想通过 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 表达式似乎没问题。但是不知道怎么回事。
我们可以使用 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