前提・実現したいこと
Rで、「'x' は数値でなければなりません」と出てしまいます。
この場合では点双列相関係数を数値として出したいのですが、どうしたらこのエラーが解消されるでしょうか?
コード中の、行列の表示が分かりづらくて申し訳ございません。
読み込むファイルの中身を分かりやすく表すと、
(header) 投手の名前 投手の名前 投手の名前 …
打者のID 0.0 0.3333333
打者のID 0.5 0.0
打者のID 0.0
…
というような行列になっています。
これらの数値はその打者がその投手との対戦での打率を表しています。対戦のない場合は空白になっています。
非常に困っています。
分かる方教えてくれるとありがたいです。
追記(解決)
上記の件は解決しましたが、1行目1列目を削除したデータの中身を確認したところ、数値が変わってしまっていました。確率を表しているのでほんとは0~1の間でないといけないのですが、2や3や11などという数値になっていました。元々データがなかった部分は全て1になっています。
元々の数値に戻すにはどうしたらいいでしょう?
追記
出力はできましたが、結果が全てNAになってしまいました…。
元々のデータはほとんどが欠損値なのですが、それを含めた上で計算するようにすることは可能でしょうか?
分かる方いらしたら教えてください!お願いします。
追記
as.vectorをつけた場合とつけなかった場合では何が違うのでしょうか?
発生している問題・エラーメッセージ
'x' は数値でなければなりません
該当のソースコード
> u <- read.csv("ファイル名.csv",header=FALSE) > head(u) V1 V2 V3 V4 V5 1 J.C. Ramirez Mike Clevinger Jose Alvarez Tyler Olson 2 lindf001 0.0 3 kipnj001 0.0 0.0 4 ramij003 0.0 5 cozaz001 0.3333333333333333 6 troum001 0.0 V6 V7 V8 V9 V10 1 Luke Bard Nick Goody Noe Ramirez Zach McAllister Matt Belisle 2 0.5 0.0 0.5 3 0.0 0.0 0.6666666666666666 4 0.0 1.0 0.5 5 0.0 1.0 0.0 6 0.0 0.0 V11 V12 V13 V14 V15 V16 1 Garrett Richards Josh Tomlin Dan Otero Jim Johnson Blake Parker Blake Wood 2 0.0 0.0 0.5 0.0 3 0.0 0.0 0.0 4 0.5 0.0 0.0 0.0 5 0.0 0.0 6 0.5 0.0 V17 V18 V19 V20 1 Tyler Skaggs Corey Kluber Cam Bedrosian Keynan Middleton 2 0.6666666666666666 0.0 3 0.5 1.0 0.0 4 0.0 0.0 5 0.0 6 0.0 V21 V22 V23 V24 1 Andrew Miller Cody Allen Parker Bridwell Daniel Gossett 2 3 4 5 0.0 0.6666666666666666 6 0.0 0.0 …続く > (r <- as.vector(cor(rowSums(u),u))) #点双列相関係数 rowSums(u) でエラー: 'x' は数値でなければなりません
試したこと
1行目の投手名と1列目の選手IDを削除して、数値と空欄のみにして上記のように実行してみましたが、同じエラーが出ました。
補足情報(FW/ツールのバージョンなど)
Rのバージョンは3.5.1
回答1件
あなたの回答
tips
プレビュー