データフレームに条件付きの列を追加しようとしていますが、期待した結果が得られません。if {} else {}を使用してデータフレームに新しい列を作成するR
私は、さまざまな日に5分間隔で列「ステップ」に記録された値を持つデータフレームを持っています。私は測定をしている日に与えられた5分の間隔の平均ステップ数を使って、「ステップ」列に欠損値を代入しようとしています。 n.b.私はMICEパッケージを使ってこれを試してみましたが、コンピュータをクラッシュさせたので、より手作業の回避策を選択しました。
中間段階として、既存のデータフレームに追加の列を、その間隔の平均ステップ数でバインドしました。私が次にやりたいことは、生の段数がNULLの場合はその意味を返し、NULLでない場合は生の値を使用する列を作成することです。私が起こることを期待したもの
activityTimeAvgs$stepsImp <- if(is.na(activityTimeAvgs$steps)){
activityTimeAvgs$avgsteps
} else {
activityTimeAvgs$steps
}
は、if文は「ステップ」はNAであればTRUEとして評価し、結果的に与えることである「avgsteps」;:ここではその一部のための私のコードです'steps'がNAでない場合は、 'steps'の生の値だけを使用すると考えられます。しかし、出力は単にすべての行で 'avgsteps'の値を与えますが、あまり役に立ちません。また、次の警告が表示されます。
Warning message:
In if (is.na(activityTimeAvgs$steps)) { :
the condition has length > 1 and only the first element will be used
私は間違っていますか?
ありがとうございます。
あなたがそのようであれば、{}ステートメントを使用したい場合は、ループ、または類似した何かのために行を下に反復する必要があります。 janosによって提案されたifelse()関数は、あなたの問題をよりよく解決します。 –