Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have the following data frame:

    name1  name2
        A      B
        B      D
        C      C
        D      A

the columns "name1" and "name2" are treated as factors and therefore A, B, C, and D are treated as levels. However I want to somehow convert this data frame so that it become

    name1  name2
      "A"    "B"
      "B"    "D"
      "C"    "C"
      "D"    "A"

In other words, convert it in a way that A, B, C, and D are treated as string.

how can i do that?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
474 views
Welcome To Ask or Share your Answers For Others

1 Answer

you're looking for as.character, which you need to apply to each column of the data.frame

Assuming X is your data.frame
If fctr.cols are the names of your factor columns, then you can use:

 X[, fctr.cols] <- sapply(X[, fctr.cols], as.character)

You can collect your factor columns using is.factor:

 fctr.cols <- sapply(X, is.factor)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...