dplyr::count()
を1つのデータセット内の任意の変数セットで実行しようとしています。変数ごとに手動でcount()
を実行すると、期待した結果が得られます。しかし、私がcount()
をforループに入れて変数の変数ごとに自動的に実行しようとすると、エラーが発生します。問題は、forループ内で変数をcount()
にどのように渡しているかのようです。私はcount()
がその変数を引用符で囲まれていないことを知っています。何らかの理由でRは渡すものが変数であることを伝えられません。ループでdplyr :: countに変数を渡す
私はdata$var1
、quo(var1)
、enquo(var1)
、var1
、“var1”
、quo(data$var1)
、およびenquo(data$var1)
として変数を渡すだけでなく、!!
でイテレータをunquotingを含め、この問題を解決するために多くのことを、試してみました。私もcount()
のような引数をcount(x=data, var=i)
のように指定しようとしましたが、これはcount()
にデータの行の総数を各繰り返しの回数として返すことになりました。何が原因でエラーが発生しているか、どのように修正できるかについてのアイデアがあれば、私は非常に感謝しています。
lubridate
に含まれるlakers
データセットに依存する最小限の再現可能な例を示します。
# This code requires some of the packages in tidyverse.
library(dplyr)
library(lubridate)
# results = empty data frame for filling with info from the count() command
results <- data.frame()
# mydata = the source data
myData <- lakers
# myCols = list of the names of columns I want to count()
myCols <- c("opponent", "game_type", "player", "period")
# Loop to count() every column in myCols automatically and store the results in
# one giant tibble of vars (var) and counts (n)
for(i in myCols){
results <- bind_rows(results, count(x=myData, i))
}
私はそのラインを実行しようとすると、うーん、私はエラー 「UseMethodでエラーが発生しました(」as.quoted「)を取得: – jozimck
」 『機能 『as.quoted』のノー適用可能な方法は、クラスのオブジェクトに適用されます』 @ jozimckあなたがあなたの質問とこの答えのコードだけで新しいRセッションでそれを実行するなら、あなたはそれを見ていますか?それはバージョン管理の問題かもしれません。私はdplyr 0.4.3とR 3.3.3にいる – Frank
ああ、それは上記のように動作します。私のワークスペースに何かが詰まっている必要があります。ご回答有難うございます! – jozimck