如何防止dbReadTable更改列名

时间:2018-08-11 21:45:59

标签: r r-dbi

我正在使用DBI包从SQL Server数据库读取数据。函数dbReadTable自动更改列名,以点代替空格。

有没有一种方法可以控制用什么代替什么,或者什么都不改变?

这样做的原因是,早先我使用带有RODBC函数的sqlQuery程序包,该程序包不会更改列名,并且已经有很多用旧列名编写的代码。

1 个答案:

答案 0 :(得分:0)

这确实取决于您使用的 DBI 后端。您可以尝试:

dbReadTable(..., check.names = FALSE)

如果您需要自定义重命名策略(例如,用下划线替换空格),则需要以不变的名称读入并自己实施重命名:

clean_names <- function(x) {
  gsub(" ", "_", x)
}

data <- dbReadTable(.......)
names(data) <- clean_names(names(data))