修正方法: 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

ここで、 dplyrsummary()関数を使用して、チームごとにグループ化された行数をカウントしようとするとします。

 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’ が見つかりません

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です