Change stringsAsFactors settings for data.frame

前端 未结 1 791
渐次进展
渐次进展 2020-12-05 04:52

I have a function in which I define a data.frame that I use loops to fill with data. At some point I get the Warning message:

Warning mes

相关标签:
1条回答
  • 2020-12-05 05:14

    It depends on how you fill your data frame, for which you haven't given any code. When you construct a new data frame, you can do it like this:

    x <- data.frame(aName = aVector, bName = bVector, stringsAsFactors = FALSE)
    

    In this case, if e.g. aVector is a character vector, then the dataframe column x$aName will be a character vector as well, and not a factor vector. Combining that with an existing data frame (using rbind, cbind or similar) should preserve that mode.

    When you execute

    options(stringsAsFactors = FALSE)
    

    you change the global default setting. So every data frame you create after executing that line will not auto-convert to factors unless explicitly told to do so. If you only need to avoid conversion in a single place, then I'd rather not change the default. However if this affects many places in your code, changing the default seems like a good idea.

    One more thing: if your vector already contains factors, then neither of the above will change it back into a character vector. To do so, you should explicitly convert it back using as.character or similar.

    0 讨论(0)
提交回复
热议问题