2016-04-02 31 views
1

Sorumu açıklamak kolay ama zor görünüyor, aşağıdaki kodlara bakın.Belirli bir veri çerçevesinden değişkeni belirtmenin bir başka yolu?

Length<-c(10,11,9,8,10) 
Width<-c(5,5.4,4.7,5.6,6.1) 
Layer<-c(8,10,12,10,14) 
data<-data.frame(Length, Width, Layer) 
data 
    Length Width Layer 
1  10 5.0  8 
2  11 5.4 10 
3  9 4.7 12 
4  8 5.6 10 
5  10 6.1 14 

Ve hepimizin bildiği gibi biz Belirli bir veri çerçevesinden değişkeni belirtmek istiyorsanız, biz aşağıda yazmanız gerekir: Önce bir veri çerçevesi yaratalım

Ancak
data$Layer 
[1] 8 10 12 10 14 

, fazla değişken olduğunda o zaman başka yollar bulmak istiyorum böylece tüketen olur:

var_list<-c("Length", "Width", "Layer") 
var_list 
[1] "Length" "Width" "Layer" 
> var_list[1] 
[1] "Length" 
> var_list[2] 
[1] "Width" 
> var_list[3] 
[1] "Layer" 

Yani bir değişken listesi oluşturulur ve ben set verilere ama nafile belirtmek için bu kullanmak istiyorum :

> data$var_list 
    NULL 
> data$var_list[1] 
    NULL 
> data$var_list[2] 
    NULL 
> data$var_list[3] 
    NULL 

Açıklamamın yeterince açık olduğunu ve herhangi bir fikir veya öneriniz için şimdiden teşekkür edin.

+0

Tüm veriler için bireyler için veri [[var_list [1]]] ', vb. Kullanın. –

cevap

2

1:

names(data); 
## [1] "Length" "Width" "Layer" 
:

data[['Layer']]; 
## [1] 8 10 12 10 14 
data[[names(data)[3L]]]; 
## [1] 8 10 12 10 14 

3: Sen `[[`() işlemi kullanılarak tek bir sütun çıkarabilir Eğer names() fonksiyonuyla sütunların isimleri alması Ama bu yana adların vektörüne nümerik bir indeks kullanarak son verirseniz, sadece orijinal data.frame'de sayısal indeksleme kullanmanızı öneririm:

data[[3L]]; 
## [1] 8 10 12 10 14 
+2

için –

+0

numaralı telefondan eol'de noktalı virgül kullanmanız gerekmemektedir @ HaddE.Nuff Bkz. Http : //stackoverflow.com/questions/29004672/using-user-defined-for-loop-function-to-construct-a-data-frame/29004774#29004774 Birisi, noktalı virgül kullanımını R. – bgoldst

+0

Tamam, kendine uygun :) Bir sebep olması gerektiğini düşündüm. –

İlgili konular