为什么在数据帧中附加字符向量会将其转换为因子向量?

时间:2018-05-28 18:02:35

标签: r

  

问题:为什么将字符向量附加到数据框(使用cbinddata.frame)会将字符向量转换为因子向量?

     

有没有人知道cbinddata.frame以外的功能会让我避免这种意外和不受欢迎的行为吗?

这是一个MWE:

ab = data.frame(a= c("a", "a"), b= c("b", "b"))  
c = c("c", "c")  
class(c)
  

'字符'

abc1 = data.frame(ab, c)  
class(abc1$c)
  

'因子'

class(abc1$a)
  

'字符'

class(abc1$b)
  

'字符'

abc2 = cbind(ab, c)  
class(abc2$c)
  

'因子'

class(abc2$a)
  

'字符'

class(abc2$b)
  

'字符'

如果原始数据框的列是因素,或者在附加第三列的过程中也被转换为因子,这种行为对我来说会更有意义,但至少我的R版本是似乎并非如此。

1 个答案:

答案 0 :(得分:2)

正如评论中指出的那样,这很容易解决。

  

abc = data.frame(ab,c,stringsAsFactors = FALSE)

这也是StackOverflow的另一个问题,虽然我当时没有意识到这一点。

Change stringsAsFactors settings for data.frame