Skip to content

Maintaining factors when copying from one data frame to another

5 messages · Kurt Wollenberg, Kevin E. Thorpe, Ferdinand Alimadhi +2 more

#
Greetings all:

OK, this is bugging the @#@%* out of me. I know the answer is simple
and straightforward but for the life of me I cannot find it in the
documentation, in the archives, or in my notes (because I know I've
encountered this in the past). My problem is:

I have a data frame with columns A, B, C, D, and E. A, B, and E are
factors and C and D are numeric. I need a new data frame with just A,
C, and D. When I copy these columns to a new data frame
all the factor data comes out as levels rather than the original
factors. How do I preserve the factors when I copy from one data frame
to another?


Thanks vary much,
Kurt Wollenberg, Ph.D.
Tufts Center for Vision Research
Tufts-New England Medical Center
750 Washington St #450
Boston, MA 02111
Office: 617-636-9028
Fax: 617-636-8945
email: kurt.wollenberg at gmail dot com
#
Does newDF <- oldDF[,c("A","C","D")] work?
Kurt Wollenberg wrote:

            

  
    
#
Kurt Wollenberg wrote:

            
The following may be better:

newDF <- subset(oldDF, select = c(A, C, D))

HTH,
Tobias
#
On Wed, 7 Dec 2005, Kurt Wollenberg wrote:

            
set.seed(1)
oldDF <- data.frame(A=rnorm(5), B=rnorm(5), C=factor(letters[1:5]), D=rnorm(5))
str(oldDF)
newDF <- data.frame(cbind(oldDF$A, oldDF$C, oldDF$D))
str(newDF) # cbind forces to numeric as a matrix, so avoid it here
newDFa <- data.frame(Aa=oldDF$A, Ca=oldDF$C, Da=oldDF$D)
str(newDFa)