私は R にかなり精通していますが、データの要求により、複数の条件を持つ反復ループを学習する必要があるところまで来ました。*apply() のさまざまな形式や、必要なデータ変換のタイプを実行するために使用される colSums() および rowSums() を使用する例を見てきましたが、おそらくこれらのタスクの効率を高めたいと考えています。ループのネストまたは反復。また、既存の推奨事項では、「NA」アイテムの無視/ドロップによるデータ損失が考慮されていないため、この情報を保持できる必要があります。
私の一般的なデータ形式は次のとおりです。
group <- c("A", "B", "C", "A", "C" [...])
individual <- c("1", "2", "3", "4", "5" [...])
choice1 <- c("1", "0", "1", "1", "NA")
choice2 <- c("1", "NA", "1", "0", "NA")
[...]
choice10 <- c("1", "0", "1", "1", "NA")
3 つの選択肢それぞれの数を計算する必要があります。1==はい; 0==いいえ; NA==選択肢全体およびグループ全体で選択をオプトアウトし、これらをパーセンテージに変換します。*apply() や行/列の合計などの以前の方法で最も困難に遭遇したのは、「NA」値 (オプトアウト) が無視されるか、グループ全体で選択値のパーセンテージを適切に取得できないことです。 . ループ構造内の「オプトアウト」/NA を無視するか保持する方法についての具体的なアドバイスやデモンストレーションをいただければ幸いです。
出力は次のようになります。
no.count_bychoice
optout.count_bychoice
percentyes_bychoice_bygroup
percentno_bychoice_bygroup
percentout_bychoice_bygroup