2016-04-06 21 views
1

benim veri çerçevesi:Değişken adı verilen veri çerçevesini nasıl gruplandırırsınız?

library(usl) 
dput(df) 
structure(list(load = c(1L, 18L, 36L, 72L, 108L, 144L, 216L), 
    throughput = c(64.9, 995.9, 1652.4, 1853.2, 1828.9, 1775, 
    1702.2)), .Names = c("load", "throughput"), class = "data.frame", row.names = c(NA, 
-7L)) 

xv=c("load") 
yv=c("throughput") 

capacity<-c(30) 

NLS kullanarak model oluşturmak:

growth<-c(20) 

pred<-predict(usl.model, data.frame(xv = tail(df[,xv],1)*(1+capacity/100))) 

: bu model verilmiş

usl.model <- usl(as.formula(paste(yv, '~', xv)), data = df) 

, ben yük büyüme verilen bazı tahmini yapmak gerekir Bu hatayı alıyorum:

Error in `[.data.frame`(newdata, , [email protected], drop = TRUE) : 
    undefined columns selected 

Öngörme işlevinde xv'ye nasıl başvurabilirim? Xv değişkenden beri mi?

+1

Birazdan yinelenen bulana kadar: 'df [[yv]]'. – joran

+0

@joran, Ben kopya olduğunu sanmıyorum. Yeni bir değer olan data.frame işlevine ayarladığım yerde sorun yaşıyorum (xv = bir değişken olduğu için xv'ye nasıl başvurabilirim?) – user1471980

+0

Örneğinizi tekrar üretmeyi bitirdiyseniz beni bunun hakkında ikna edebilirsiniz. 'usl' nedir?' kapasite' nedir? – joran

cevap

2

Sorunuzu düzenlemeden önce, önerdiğim yinelemenin çözüm olduğu bir hata içeriyordu. $ kullanarak bir değişkendeki sütun adlarına başvuramazsınız.

Daha sonra ikinci bir sorunla karşılaştığınızı ve orijinal veri çerçevenizin load adlı bir değişkene sahip olduğunu ve yeni veri çerçevesinin aynı ada sahip sütunu içermesi gerektiğini belirttiniz.

Sadece setNames kullanın:

new_df <- setNames(data.frame(tail(df[,xv],1)*(1+growth/100)),xv) 
pred<-predict(usl.model,newdata = new_df) 
İlgili konular