2017-02-01 7 views
0

データフレーム内のすべての変数に対して単変量ロジスティック回帰を実行する必要があります。私は166の変数を持っていますが、私はこのプロセスを単純化するためにlapplyを使用しようとしています。しかし、私はエラーを取得しておいてください。R関数は単独で機能し、lapply内で使用するとエラーが発生する

> lapply(data$Gates, FUN=Lmodel) 

Error in model.frame.default(formula = Sstatus ~ x, data = data, 
na.action = na.exclude, : 
variable lengths differ (found for 'x') 

ので、同様に、私は機能Lmodelを建て:lapplyと一緒に使用されていないとき

Lmodel<-function(x){ 
(glm(Sstatus~x, data=data, family="binomial")) 
} 

機能が動作します。

> Lmodel(data$Gates) 

Call: glm(formula = Sstatus ~ x, family = "binomial", data = data, 
na.action = na.exclude) 

Coefficients: 
(Intercept)   xy 
2.5986  -0.6527 

Degrees of Freedom: 169 Total (i.e. Null); 168 Residual 
(8 observations deleted due to missingness) 
Null Deviance:  96.72 
Residual Deviance: 95.57 AIC: 99.57 

マイ依存変数Sstatusにはいくつかの欠損値が含まれており、これは私の問題がどこにあるのかと考えています。しかし、私はなぜ機能が単独で動作するのか理解できませんが、lapplyで使用すると理解できません。これをどうすれば解決できますか?

+2

を次のようにあなたのLmodel機能を編集する必要がある場合があります。ドキュメントを勉強する必要があります。 – Roland

+1

'lapply()'は最初の引数に飛び込み、最初の引数の要素を一つずつ関数に渡します。 – jogo

+1

'lapply(data $ Gates、...)'を使うと、一度に一つの値しか関数に渡されませんでした。関数だけを使用したときはフルサイズのベクトルを送りました。 –

答えて

0

lapplyを使用する場合は、リストの要素が独立変数の観測値を含むベクトルであるリストを作成する必要があります。たとえば、変数Sstatus、indepen1、indepen2、indepent3を持つデータセットがあります。

lapply(list.of.indepent, FUN=Lmodel) 

が動作するはずその後

# make a list 
list.of.indepent <- vector("list", 3) 
list.of.indepent[[1]] <- indepen1 
etc 

あなたは、私はあなたが何をするかlapply理解してきたとは思わない

Lmodel<-function(x){ 
(glm(data$Sstatus~x, family="binomial")) 
} 
関連する問題