修正方法: fun(newx[, i], …) のエラー: 引数の型 ' (文字)


R で発生する可能性のあるエラーは次のとおりです。

 Error in sum(x): invalid 'type' (character) of argument

このエラーは、文字ベクトルに対して数学演算 (合計、平均、数値などの計算) を実行しようとすると発生します。

このチュートリアルでは、このエラーを実際に解決する方法を説明します。

エラーを再現する方法

R で次のデータ フレームを作成するとします。

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 points=c(10, 12, 15, 20, 26, 25),
                 rebounds=c(7, 8, 8, 14, 10, 12))

#view data frame
df

  team points rebounds
1 to 10 7
2 to 12 8
3 to 15 8
4 B 20 14
5 B 26 10
6 B 25 12

ここで、「チーム」列の合計を計算してみるとします。

 #attempt to calculate sum of values in 'team' column
sum(df$team)

Error in sum(df$team): invalid 'type' (character) of argument

「チーム」列はキャラクター列であるため、エラーが発生します。

これはclass()関数を使用して確認できます。

 #view class of 'team' column
class(df$team)

[1] “character”

エラーを修正する方法

このエラーを回避する方法は、数値ベクトルに対する数学演算のみを使用することです。

たとえば、 sum()関数を使用して、「points」列の値の合計を計算できます。

 #calculate sum of values in 'points' column
sum(df$points)

[1] 108

チームごとにグループ化されたポイント値の合計を計算することもできます。

 #calculate sum of points, grouped by team
aggregate(points ~ team, df, sum)

  team points
1 to 37
2 B 71

チームごとにグループ化されたポイントリバウンドの合計を計算することもできます。

 #calculate sum of points and sum of rebounds, grouped by team
aggregate(.~team, df, sum)

  team points rebounds
1 A 37 23
2 B 71 36

数値変数の合計を計算しようとしているだけであるため、これらの操作ではエラーが発生しないことに注意してください。

追加リソース

次のチュートリアルでは、R の他の一般的なエラーを修正する方法について説明します。

修正方法: 条件の長さが 1 を超えており、最初の要素のみが使用されます。
修正方法: 二項演算子の数値以外の引数
修正方法: dim(X) は正の長さでなければなりません
修正方法: 未使用の引数を選択する際のエラー

コメントを追加する

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