2016-07-13 3 views
0

私は投げ縄回帰を取るしようとしているが、私はR.によく私のXとYを定義することはできませんが問題が

#load data

>test.data<-read.spss("C:\\Users\\Inhib\\OneDrive\\documents\\dummy.sav",use.value.labels=TRUE, to.data.frame=TRUE) 
>test.data #testing my data, it's all there so I won't add it here 
#take columns 2 to 6 for X 
>X<-as.matrix(test.data[,2:6]) 


# Column 1 is the predicted variable Y 


>Y<-as.matrix(test.data[,1]) 


#Ok, let's fit it 
fit<- glmnet(x, y, family="gaussian", alpha=0, lambda=0.001) 

その後、私は、このエラーメッセージが表示されます:

"Error in glmnet(x, y, family = "gaussian", alpha = 0, lambda = 0.001) : 
    number of observations in y (100) not equal to the number of rows of x (222)" 

は、すべての列が同じ長さ(222)であるが、エラーがXにのみY 100及び222

があることを述べています今

#So I checked for Y here

>length(Y) 
[1] 222 
#Then checked for X 
> length(X) 
[1] 1110 

、それは確かに私が何かを見逃しているを指します。明らかに、行列のサイズは異なりますが、Xは222 * 5の列ですが、どのように動作させることができますか?このエラーが消えることを意味する...私は多くの方法を試みた。私は何時間も働いており、実際には私の進行を止め、Googleからの助けはあまりありません。解決に感謝します。

+0

))
1をお勧めします、むしろlength
2よりdim(x)dim(y)を使用して行列の次元を確認してください)y(可能性が高いのいずれかのNA値があるかどうかをチェックしますあなたは 'glmnet'で使っている' y'(小文字)ですか? 'rm(list = ls())'を実行して、コード全体をもう一度実行してみてください。 – Tensibai

答えて

0

私は 'X'と 'どのようなものがあり

+0

dim(x)私に与えた[1] 222 4、dim(y)は私にNULLを与えました。また、データにNA値がないことを確認しました。どのように解決することができますか? –

+0

dim(x)は222 5を、dim(y)は222を与えるべきであるので、それはちょうどいい気分ではありません。glmnet(x、y、family = "gaussian"、alpha = 0)でXとYを大文字にしなかったと思います。 、λ= 0.001)これは問題かもしれませんか? glmnet(X、Y、family = "gaussian"、alpha = 0、lambda = 0.001)にする必要はありませんか? – DevMui