修正方法: オブジェクト (リスト) に「double」を強制的に入力することはできません。
R で発生する可能性のある一般的なエラーは次のとおりです。
Error: (list) object cannot be coerced to type 'double'
このエラーは、最初にunlist()関数を使用せずに複数の要素のリストを数値要素に変換しようとすると発生します。
このチュートリアルでは、このエラーを解決するために使用できる正確な手順を共有します。
エラーを再現する方法
次のコードは、複数の項目のリストを数値に変換しようとします。
#create list x <- list(1:5, 6:9, 7) #display list x [[1]] [1] 1 2 3 4 5 [[2]] [1] 6 7 8 9 [[3]] [1] 7 #attempt to convert list to numeric x_num <- as. numeric (x) Error: (list) object cannot be coerced to type 'double'
unlist()関数を使用しなかったため、エラー メッセージ(list) を “double” と入力することはできません が表示されました。
エラーを修正する方法
リストを数値に変換するには、必ずunlist()関数を使用する必要があります。
#create list x <- list(1:5, 6:9, 7) #convert list to numeric x_num <- as. numeric (unlist(x)) #display numeric values x_num [1] 1 2 3 4 5 6 7 8 9 7
class()関数を使用して、x_num が実際に数値のベクトルであることを確認できます。
#verify that x_num is numeric
class(x_num)
[1] "digital"
元のリストと数値リストの要素数が同じであることも確認できます。
#display total number of elements in original list sum(lengths(x)) [1] 10 #display total number of elements in numeric list length(x_num) [1] 10
2 つの長さが一致していることがわかります。
追加リソース
次のチュートリアルでは、R の他の一般的なエラーを解決する方法について説明します。
R での修正方法: 名前が以前の名前と一致しない
R での修正方法: コントラストは 2 レベル以上の因子にのみ適用できます。
R での修正方法: 長いオブジェクトの長さが短いオブジェクトの長さの倍数ではありません