Add columns of dataset

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Add columns of dataset

Lisa
Dear all,

I have a dataset that looks like

id  var1  var2  var4  var7  var8
1    0.0   0.1    0.3    0.9    0.0    
2    0.4   0.6    0.0    0.0    0.2    
3    0.0   0.0    0.0    0.8    0.7    

Some columns are missed, for example, here the fourth (var3), sixth(var5) and seventh (var6) columns. I want to first determine which columns are missed in a huge dataset and then add the missed columns with the values of zeros that looks like

id  var1  var2   var3  var4  var5  var6  var7  var8
1    0.0   0.1     0.0    0.3   0.0    0.0   0.9    0.0    
2    0.4   0.6     0.0    0.0   0.0    0.0   0.0    0.2    
3    0.0   0.0     0.0    0.0   0.0    0.0   0.8    0.7    

Can anybody please help how to get this done? Thanks a lot in advance

Lisa
Reply | Threaded
Open this post in threaded view
|

Re: Add columns of dataset

Phil Spector
Lisa -
    I think something like this will do what you want:

> mydf = data.frame(id=1:3,var1=c(0,.4,0),var2=c(.1,.6,0),var4=c(.3,0,0),var7=c(.9,0,.8),var8=c(0,.2,.7))
> allvars = c('id',paste('var',1:8,sep=''))
> mydf[,allvars[!allvars %in% names(mydf)]] = 0
> mydf = mydf[,sort(names(mydf))]
> mydf
   id var1 var2 var3 var4 var5 var6 var7 var8
1  1  0.0  0.1    0  0.3    0    0  0.9  0.0
2  2  0.4  0.6    0  0.0    0    0  0.0  0.2
3  3  0.0  0.0    0  0.0    0    0  0.8  0.7

  - Phil Spector
  Statistical Computing Facility
  Department of Statistics
  UC Berkeley
  [hidden email]




On Fri, 3 Dec 2010, Lisa wrote:

>
> Dear all,
>
> I have a dataset that looks like
>
> id  var1  var2  var4  var7  var8
> 1    0.0   0.1    0.3    0.9    0.0
> 2    0.4   0.6    0.0    0.0    0.2
> 3    0.0   0.0    0.0    0.8    0.7
>
> Some columns are missed, for example, here the fourth (var3), sixth(var5)
> and seventh (var6) columns. I want to first determine which columns are
> missed in a huge dataset and then add the missed columns with the values of
> zeros that looks like
>
> id  var1  var2   var3  var4  var5  var6  var7  var8
> 1    0.0   0.1     0.0    0.3   0.0    0.0   0.9    0.0
> 2    0.4   0.6     0.0    0.0   0.0    0.0   0.0    0.2
> 3    0.0   0.0     0.0    0.0   0.0    0.0   0.8    0.7
>
> Can anybody please help how to get this done? Thanks a lot in advance
>
> Lisa
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Add-columns-of-dataset-tp3071722p3071722.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: Add columns of dataset

Lisa
Your R script works very well. Thank you very much.

Lisa