Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
448 views
in Technique[技术] by (71.8m points)

r - How to change factor labels into string in a data frame

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

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

1 Reply

0 votes
by (71.8m points)

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)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...