numaralı formüle dönüştürme Formüle sahip olan formülleri kullanırken, takılan modeller XY katsayılarını belirtir, burada X, faktörün adıdır ve Y belirli bir düzeydir. Bu katsayıların isimlerinden bir formül oluşturabilmek istiyorum.Katsayı adlarını R
Nedeni: Bir kementin bir tasarım matrisine sığması durumunda (aşağıda yaptığım gibi), yalnızca sıfır olmayan katsayılar için terimler içeren yeni bir formül nesnesi oluşturmak istiyorum. Bundan
require("MatrixModels")
require("glmnet")
set.seed(1)
n <- 200
Z <- data.frame(letter=factor(sample(letters,n,replace=T),letters),
x=sample(1:20,200,replace=T))
f <- ~ letter + x:letter + I(x>5):letter
X <- sparse.model.matrix(f, Z)
beta <- matrix(rnorm(dim(X)[2],0,5),dim(X)[2],1)
y <- X %*% beta + rnorm(n)
myfit <- glmnet(X,as.vector(y),lambda=.05)
fnew <- rownames(myfit$beta)[which(myfit$beta != 0)]
[1] "letterb" "letterc" "lettere"
[4] "letterf" "letterg" "letterh"
[7] "letterj" "letterm" "lettern"
[10] "lettero" "letterp" "letterr"
[13] "letters" "lettert" "letteru"
[16] "letterw" "lettery" "letterz"
[19] "lettera:x" "letterb:x" "letterc:x"
[22] "letterd:x" "lettere:x" "letterf:x"
[25] "letterg:x" "letterh:x" "letteri:x"
[28] "letterj:x" "letterk:x" "letterl:x"
[31] "letterm:x" "lettern:x" "lettero:x"
[34] "letterp:x" "letterq:x" "letterr:x"
[37] "letters:x" "lettert:x" "letteru:x"
[40] "letterv:x" "letterw:x" "letterx:x"
[43] "lettery:x" "letterz:x" "letterb:I(x > 5)TRUE"
[46] "letterc:I(x > 5)TRUE" "letterd:I(x > 5)TRUE" "lettere:I(x > 5)TRUE"
[49] "letteri:I(x > 5)TRUE" "letterj:I(x > 5)TRUE" "letterl:I(x > 5)TRUE"
[52] "letterm:I(x > 5)TRUE" "letterp:I(x > 5)TRUE" "letterq:I(x > 5)TRUE"
[55] "letterr:I(x > 5)TRUE" "letteru:I(x > 5)TRUE" "letterv:I(x > 5)TRUE"
[58] "letterx:I(x > 5)TRUE" "lettery:I(x > 5)TRUE" "letterz:I(x > 5)TRUE"
ben boşuna formülü() ve all.vars() teslim
~ I(letter=="d") + I(letter=="e") + ...(etc)
bir formüle sahip istiyoruz. Ayrıca, bunu ayrıştırmak için bir işlev yazmak, ortaya çıkabilecek farklı terimlerden dolayı bir parça acıdır. Örneğin, x için: sayısal bir değer olduğunda harf ve harf bir faktör veya I (x> 5): başka bir can sıkıcı durum olarak mektup.
Bu yüzden formül ve karakter gösterimi arasında dönüştürme ve geri dönüş için bazı işlevlerden haberdar değilim?
Bu tanıdığım bir formül değil. R –
Belki de yanlış anlıyorum, ancak R'nin model formüllerini tam olarak göremiyorsunuz. Formülü XY bitlerine dahil etmiyorsunuz, X ve 'model.matrix()' ve 'model.frame()' yi dahil ediyorsunuz, X'in seviyelerini ilgili model matris sütunlarına genişletmek için XY. –
Formülü neden istediğinizi açıklar mısınız? Son kullanım nedir? –