2016-04-05 26 views
0

yılında arsa ve veya model oluşturulması değişken adları nasıl kullanacaklarını: Bu gibi modeller oluşturmak için değişken adları kullanabilmek için gerekenEğer ben df denilen bu veri çerçevesini sahip Ar

put(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") 

ve ya arsa Ben

kullanırsanız

Warning in usl(yv ~ xv, data = df) : 
    'data' has only a few values; the result might not be accurate 
Warning in usl(yv ~ xv, data = df) : 
    'data' has no row where 'xv' = 1; switching method from 'default' to 'nlxb' 
Warning: Error in /: non-numeric argument to binary operator 

:

usl.model<-usl(yv~xv,data=df) 

bu hatayı alıyorum Değişken adlarını kullanabilmem gerekir. Burada neler olabileceği hakkında bir fikrin var mı?

cevap

1

yv/xv, veri çerçevesindeki df değişkenleri olarak kabul edilir. Ayrıntılar için bkz. ?formula. Sen kullanabilirsiniz yerine eval-ayrıştırmak: aynı zamanda bir yap-fonksiyonudur olarak

library(usl) 
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") 
eval(parse(text=paste0("usl.model<-usl(",yv,'~',xv,",data=df)"))) 

Ayrıca df veri çerçevesi için iyi bir isim değil.

+4

'usl.model <- usl (as.formula (yapıştır (yv, '~', xv)), data = df)' daha iyi olurdu – rawr

+0

@rawr, nasıl değişken adlarına dayalı bir çizim oluşturabilirim? arsa (as.formula (yapıştır (yv, '~', xv)), veri = df)? – user1471980

+0

@rawr, teşekkür ederim, cevap olarak koyabilir misiniz? – user1471980

İlgili konular