0
data <- sqlQuery(connection, "SELECT col1, col2, col3 FROM table1")
d <- data.frame(data, stringsAsFactors = FALSE)
或data.frame()中的stringsAsFactors如何工作?在这种情况下
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)
它的工作原理,但它设置全球。为什么内幕陈述无效?
'data'本身我想''col1'作为'factor'的'data.frame'。 'stringsAsFactors = FALSE'分别将'col1'变量添加到'd' –
什么是'data'?请参考示例[这里](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)为了改善您的问题。我很肯定,在创建一个可重现的例子时,你会明白,这是极不可能的,data.frame()中的* stringsAsFactors不起作用* –
你应该仔细阅读'?data.frame'。每一个参数都被强制为一个'data.frame'。所以,如果任何参数已经是'data.frame',则没有任何变化。新字符列根据'stringsAsFactors'进行强制转换。对于'transform'部分,请记住它不会通过引用*更改函数参数*,所以您应该将结果赋值回:'d <-transform(d,col1 = as.character(col1))'(注意这里'stringsAsFactors'参数不是必需的)。 – nicola