1. ホーム
  2. R

[R] is.data.frame(x) のエラー : (リスト) オブジェクトを 'double' 型に強制できない。

2022-02-19 06:10:57

Rをプログラミングに使うことがあまりない人にとっては、Rに出会ったとたんに様々な問題に遭遇することがあります。今日、私はRでデータを読み込んでいるときに、次のようなエラーに遭遇しました。

Error in is.data.frame(x) : 
  (list) object cannot be coerced to type 'double'

データを読み込むコードは以下の通りです。(ここで、interval_estimated()は自己定義したメソッド)

df <- read.csv("C://Users//Machenike//Desktop//zzz//data.csv", header = FALSE, sep = "\t")
interval_estimated(df[3])
Error in is.data.frame(x) : 
  (list) object cannot be coerced to type 'double'
In addition: Warning message:
In mean.default(x) :
 Show Traceback
 
 Rerun with Debug
 Error in is.data.frame(x) : 
  (list) object cannot be coerced to type 'double'

データの内容は以下の通りです。

head(df)
           V1 V2 V3
1 1.01121e+19 1 0.03000000
2 1.01121e+19 1 0.03000000
3 1.01121e+19 1 0.03000002
4 1.01121e+19 1 0.00000000
5 1.01121e+19 1 0.03000000
6 1.01121e+19 1 0.00000000

解決策

それは、読み込みがデータフレーム形式であるためで、ここでの呼び出しは、以下のように、df[3]を使うのではなく、df[,3]を使うべきです。

interval_estimated(df[,3])
       mean df a b
1 0.0314915 404901 0.02930638 0.03367661