[R] Add col in data.frame

Jim Lemon jim at bitwrit.com.au
Sat Oct 29 10:04:10 CEST 2011


On 10/29/2011 06:54 PM, Smart Guy wrote:
> Hello Gurus,
>                  I am still new to R. Here is my issue.
> I was trying to add column to data frame that was populated by read.spss().
> When I used cbind to add a new variable(column).
>
> library(foreign)
> mydf<-read.spss(file="C:/myspss.sav",use.value.labels=FALSE,
> to.data.frame=TRUE,use.missings=FALSE)
> attr(mydf,"variable.labels")
> ## it gives you all the labels
>
> ##Adding a new variable(col) to mydf
> newcolm<- list(frt="grapes")
> mydf<- cbind(mydf, newrow)
>
> ##Now checking to see labels again
> attr(mydf,"variable.labels")
>
> ## And you get NULL
>
> Can anyone please help me to achieve this without loosing any default
> attribute that was there?

Hi SmartG,
I assume that the "newcolm"-"newrow" is just a typo in the example 
above. Assuming that you are managing to get your new column in "mydf", 
you can add the new variable name like this:

oldvl<-attr(mydf,"variable.labels")
mydf<-cbind(mydf,newrow)
attr(mydf,"variable.labels")<-c(oldvl,"newvar")

Jim



More information about the R-help mailing list