data <- sqlQuery(connection, "SELECT col1, col2, col3 FROM table1")
d <- data.frame(data, stringsAsFactors = FALSE)
或
transform(d, col1 = as.character(col1), stringsAsFactors = FALSE)
在这种情况下, d
仍有factor
类型的列。
str(d)
'd': 1943 obs. of 4 variables:
$ col1: Factor w/ 5 levels ....
但是当我第一次陈述时;
options(stringsAsFactors = FALSE)
它有效,但它设置全局。为什么内部陈述没有效果?
答案 0 :(得分:3)
阐述David Ahrenburg的评论,请尝试
data <- sqlQuery(connection, "SELECT col1, col2, col3 FROM table1", stringsAsFactors = FALSE)
包?sqlQuery
的帮助页RODBC
说:
sqlQuery
是RODBC
的主力函数。它将SQL语句查询发送到服务器,并通过sqlGetResults
检索(部分或全部)结果。
sqlQuery
有一个...
参数,用于传递给sqlGetResults
的其他参数。
查看sqlGetResults
的使用部分(在同一帮助页面上),您会发现存在使用以下默认值的参数stringsAsFactors
:
stringsAsFactors = default.stringsAsFactors()