1
に追加の引数を持つ関数を減らす「これ」から文字列ベクトルの書き方:purrr ::単語の出現を蓄積し、この単純な例を考えてみましょう.F
library(purrr)
library(stringr)
sentences <- c("This is a sentence.",
"This is another sentence.",
"One more This")
reduce(str_count(sentences, "This"), `+`) # SUCCESS! Returns 3
私は理解しようとしているがreduce
に渡さsentences
でこれを書くためにどのように - 私の失敗:
reduce(sentences, str_count, pattern = "This") # FAILS! unused argument (.x[[i]])
reduce(sentences, ~ str_count, pattern = "This") # FAILS! Returns signature for str_count()
reduce(sentences, ~ str_count(pattern = "This")) # FAILS! Argument "string" missing with no default.
reduce(sentences, ~ str_count("This")) # FAILS! Returns wrong result, 4.
reduce(sentences, ~ str_count(.x, pattern = "This") + str_count(.y, pattern = "This")) # FAILS! Returns wrong result, 1.
EDIT:より明確にするために、Python
アプローチを検討してください。
私は同様のR
アプローチに興味がありますが、.count
はPython
のメソッドであるため、これが可能かどうかはわかりません。
あなたは、これらすべての再書き込みのために再び出力が3であることを期待していますか?あなたはどのようにしてその総額が削減されていないことを期待していますか? reduceには、少なくとも2つのパラメータ(前の値と現在の値の1つ)を取る関数が必要です。あなたが本当にここで何をしようとしているのか分かりません。 'map(sentences、str_count、pattern =" This ")%>%reduce(\' + \ ')'を探していますか?そうでなければ、ここで減らそうとしていることは分かりません。 – MrFlick
'str_count'はベクトル化されています。だからあなたの元のアプローチ、またはこれは: 'sentences%>%str_count(" This ")%>%reduce(' + ')'私にはかなり読みやすい。これらに加えてどんな改善が望まれますか? – www
@MrFlickは、追加のコンテキストにPythonの同等の例を提供しようとしました。 – JasonAizkalns