修正方法: 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) は正の長さでなければなりません
修正方法: 未使用の引数を選択する際のエラー