私は、各診療所が医者で構成され、患者の処置を行う診療所で構成されるデータセットを持っています。私は実行するために書かれている複数の引数を指定してオーバーロードする
クリニックリストまたは医師のリストのデータセットのフィルタリングに分析する(簡単なものは以下の通りです):私はどちらかのリストと、これらの関数を呼び出すしようとしています
num.of <- function(x.doctor, x.clinic){
if (!missing(x.clinic)){
df_filter <- filter(df_clean, clinic == x.clinic)
}
if (!missing(x.doctor)) {
df_filter <- filter(df_clean, doctor == x.doctor)
}
num_doctor <- length(unique(df_filter$doctor))
num_surveys <- nrow(df_filter)
num_procedure <- length(unique(df_filter$PPID))
result <- setNames(c(num_doctor, num_surveys, num_procedure), c("num_doctor", "num_surveys", "num_procedure"))
return(result)
}
医師や診療所のリスト:
sapply(doctor_list, num.of, x.clinic = NULL)
しかし、機能は上記のみの機能が動作しない、すなわち、「最初の」引数は、通過されたときに動作しますが、これは行います
sapply(clinic_list, num.of, x.doctor = NULL)
初期関数の記述時に引数を逆にすると、上記の例とは逆の結果が真になります。
関数には、一度に1組の引数しか与えられません。x.doctorのリストまたはx.clinicのリストのいずれかです。
どうすれば関数を書き直すことができますか?apply x.clinicとx.doctorの別の関数呼び出しでどうすればいいですか?
ありがとうございました!
ありがとうございました! – joelross
答えを受け入れることはできますか? – r2evans