2016-12-02 4 views
-1

Ich habe einen Datenrahmen (Master) fordert, dass einige Variablen hat, die ich weiter unten in der Liste gespeichert habe:

cont<-list("Quantity","Amt_per_qty","Trans_tax","Total_trans_amt") 
catg<-list("Gender","Region_code","SubCategory") 

ich ein zu schaffen versuchen Funktion, wo ich die Variablen aus Datenrahmen zugreifen können und eine Funktion auf sie ausführen, wenn x und val in unten Funktion zu lösen scheint, wie kann ich die Variablen mit dem $ -Zeichen innerhalb Funktion

univar<-function (x){ 
       for (val in cont){ 
        print (val) 
        n<-nrow(x$val) } 

         print (n) } 
univar(master) 

Seine Rückkehr NULL zugreifen, Ich habe sogar mit n < -nrow (x [, val]) versucht, dass auch scheint nicht zu funktionieren.

+0

Gebrauch verwenden '[[' statt '$' – akrun

+0

nicht funktioniert entweder ( – muni

+0

Sie haben eine Liste, Sie brauchen 'c' – akrun

Antwort

2
i) x[val] returns a data.frame 
ii) x[,val,drop = TRUE] returns a vector 
iii) x[[val]] shall return as a vector. Advantage of this is : it also works with data.tables 

n <- nrow(x) or length(x[[val]]) 
+0

Danke, das scheint zu funktionieren: nrow (x [val]) – muni

0

Der Grund dafür ist, dass die OP eine list erstellt, es unlisted sein könnte und dann [

cont <- unlist(cont) 
univar<-function(x){ 
      for (val in cont){ 
       print (val) 
       n<-nrow(x[[val]]) } 

        print (n) } 
univar(master) 
Verwandte Themen