2016-11-18 33 views
-1

3日後のRですが、私が間違っていることを理解できません。私はglmnetのcoxモデルに2つの方法の相互作用を持ついくつかの列を送信しようとしています。私はこれを実行すると、私はエラーを事前にmodel.frame.default(object、data、xlev = xlev)のエラー:オブジェクトが行列ではありません

Error in model.frame.default(object, data, xlev = xlev) :  
object is not a matrix 

感謝を取得

xs<-c("Col1", "Col2", "Col3") 
v<-c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, NA, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, NA, 25, 26, 27, 28, 29, 30) 
df<-data.frame(matrix(v,ncol=3)) 
dm<-as.matrix(df) 
dm<-matrix(dm[complete.cases(dm)], ncol=3) 
colnames(dm)<-xs 
dfdata<-data.frame(dm) 
f<-as.formula(time~.*.) 
xmatrix<-model.matrix(f, dfdata)[,-1] 

再現可能なコードを作るためにdtable

編集と呼ばれるいくつかのdata.frame()を持っている

答えて

0

これは公式のためです:時間〜。*。 data.frame()には、数式がすべてを通過する時間列はありません。

0

私は間違いが何が間違っているのか正確に伝えていると思う。 model.matrix()に渡すオブジェクトは行列ではありません。 class(data)の結果は何ですか?おそらくdata.frameでしょう。

as.matrix()model.matrix()に追加して、dataを呼び出してみてください。

他の2つのメモ - あなたのデータを呼び出しません。フレームdata。また、再現可能な例を使用してここで質問します。あなたはより良い反応を得るでしょう。

+0

nopeでは、model.matrix()には第2項のdata.frame()が必要です。しかし、他の2つのことに注意してください。 – Faller

0

私はこれの代わりに思う:

dm<-matrix(dm[complete.cases(dm)], ncol=3) 

あなたはこの希望:

dm <- as.matrix(dm[complete.cases(dm), ]) 

私自身のホーン(あまり)プープーが、データの管理作業を簡素化するためにglmnetUtilsを使用することを検討しないことをフレーム、数式、モデル行列などがあります。

+0

ありがとう、私はそれを見ていきます。 as.matrix()まで私は愛を得ません。 – Faller

関連する問題