2017-06-24 18 views
0

したがって、配列上で適用関数を実行しようとしています。この考え方は、リスクファクター列の値を調べ、これが1の場合は "OnsetFunction"を使用し、HighOnsetFunctionを使用する場合は0を使用します。次に、配列の別の列に値を設定する列の値を生成します。xとyの長さが適用時に異なる

> apply(OutComes, 1, function(x) { if(x["Risk_Factor"] == 1) 
> + {OnsetFunction()} 
> + else{ HighOnsetFunction()}}) 

上記の適用機能に問題があり、このメッセージが引き続き表示されます。

>Error in xy.coords(x, y) : 'x' and 'y' lengths differ 

あり、私は多くの人々であることを、それを拡張する前に、コードが小グループに動作することを確認しようとしているとして、現時点では、アレイ内の唯一の5つの行がありますが、私はわからないんだけどxとyはです。私はこのメッセージをグラフで見たことがありますが、以前はこれで決してありませんでした。

+0

は、あなたの配列を表示することができますか? – sb0709

+0

PersonNumber Risk_Factor OC_Death OnsetAge臨床CS_DeathキュアAC_Death [1] 1 1 99.69098 NA NA NA NA NA [2,1] 2 1 60.68009 NA NA NA NA NA [3] 3 0 88.67483 NA NA NA NA NA [ 4、] 4 0 87.60846 NA NA NA NA NA [5、] 5 78.23118 NA NA NA NA NA – Ryan

+0

2番目の値1または0に基づいて第4列を変更しようとしています – Ryan

答えて

0

私はあなたがifelseを使用しようとしているが、applyを使用していると思うとif

試してみてください。

ifelse(OutComes$Risk_Factor==1, OnsetFunction(), HighOnsetFunction()) 
+0

同じ問題が発生しています。適用機能を無視して、単独でifelseを使用しても。 ifelse(OutComes [、 "Risk_Factor"] == 1、HighOnsetFunction(x)、OnsetFunction(x))これは、同じxとyの長さが異なる問題を投げます。 – Ryan

+0

@ Ryan、問題はこれらの関数に存在する可能性があります。彼らは同じ長さの配列を返すことはできません。例えば、いくつかのxでは、1つは単一の値を返し、もう1つは2つの値の配列を返すかもしれません。両方の機能を確認してください。 –

関連する問題