私のマッパ機能の進捗状況を監視したいと思います。データは2つのリストで構成され、2つの引数を持つ関数があります。プログレスバーとマップリー(リストとして入力)
私は1つの引数を取る関数と同様のことをすれば、lapplyの代わりにldplyを使うことができます。 (私はrbind.fillをdata.frameに出力したい)
mdplyで同じことをしたいのであれば、mdplyの関数がデータフレームの列から取得した値を必要とするため、アレイ。 Mapplyはリストを入力として受け取ります。
これらのplyr apply関数は、出力をdata.frameとして取得できるだけでなく、プログレスバーを使用できるため便利です。
私はpbapplyパッケージがあることを知っていますが、mapplyバージョンはなく、txtProgressBar関数がありますが、これをmapplyでどのように使うのか分かりませんでした。
私は悪い例を推測
(実行するために約30秒かかります)再現性の例を作成しようとしました。私のl1はmdplyにデータフレームとして送ることができない掻かれたウェブサイト(rvest :: read_html)のリストです。リストは本当にリストである必要があります。
mdply <- plyr::mdply
l1 <- as.list(rep("a", 2*10^6+1))
l2 <- as.list(rnorm(-10^6:10^6))
my_func <- function(x, y) {
ab <- paste(x, "b", sep = "_")
ab2 <- paste0(ab, exp(y), sep = "__")
return(ab2)
}
mapply(my_func, x = l1, y = l2)
mdply does't作業
mdply(l1, l2, my_func, .progress='text')
Error in do.call(flat, c(args, list(...))) : 'what' must be a function or character string
ありがとうございます。問題は実際には私がrvest :: read_htmlを使って掻いたWebページのリストです。このリストはdata.frameの列として使用できません。私はその例が悪いと思う。 – Roccer
ご協力ありがとうございます。関数は実行されますが、出力は私が望むものではなく、私がmapplyから得るものでもありません。私は後であなたの答えを例文で解決するように受け入れます。 – Roccer