修正方法: n() のエラー: この関数は直接呼び出すべきではありません
R で発生する可能性のあるエラーは次のとおりです。
Error in n(): This function should not be called directly
このエラーは通常、 dplyrパッケージのn()関数を使用しようとしたときに、 plyrパッケージがdplyrパッケージの後にロードされたときに発生します。
このチュートリアルでは、このエラーを修正する方法を正確に説明します。
エラーを再現する方法
R に次のデータ フレームがあるとします。
#define data frame
df <- data. frame (team=rep(c('A', 'B'), each= 5 ),
points=c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20),
assists=c(4, 7, 11, 16, 22, 29, 38, 49, 63, 80))
#view data frame
df
team points assists
1 to 2 4
2 to 4 7
3 to 6 11
4 to 8 16
5 to 10 22
6 B 12 29
7 B 14 38
8 B 16 49
9 B 18 63
10 B 20 80
ここで、 dplyrのsummary()関数を使用して、チームごとにグループ化された行数をカウントしようとするとします。
library (dplyr)
library (plyr)
#attempt to count rows by team
df %>%
group_by(team) %>%
summarize(count = n())
Error in n(): This function should not be called directly
dplyrパッケージの後にplyrパッケージをロードしたため、エラーが発生し、問題が発生しています。
エラーを修正する方法
このエラーを修正する方法は、単純にdplyr:summarize を使用することです。これにより、どのパッケージからsummary関数を使用したいかを R が正確に認識できるようになります。
library (dplyr)
library (plyr)
#count rows by team
df %>%
group_by(team) %>%
dplyr::summarize(count = n())
# A tibble: 2 x 2
team count
1 to 5
2 B 5
今回はdplyr::summarize を使用して要約を実行したため、エラーなしでチームごとにグループ化された行数をカウントできていることに注意してください。
追加リソース
次のチュートリアルでは、R の他の一般的なエラーを解決する方法について説明します。
R での修正方法: as.Date.numeric(x) のエラー: “origin” を指定する必要があります
修正方法:stripchart.default(x1, …) のエラー: 無効なプロット方法
修正方法: eval (predvars、data、env) のエラー: オブジェクト ‘x’ が見つかりません