私はRが初めてで、インポートしたデータセットへのアクセスに問題があります。私はRStudioを使用しており、csvファイルをインポートするときにデータセットのインポート機能を使用し、コンソールウィンドウからソースウィンドウに行を貼り付けました。コードは次のようになります。
setwd("c:/kalle/R")
stuckey <- read.csv("C:/kalle/R/stuckey.csv")
point <- stuckey$PTS
time <- stuckey$MP
しかし、データは私が慣れているように整数でも数値でもありませんが、変数をプロットしようとすると、通常のプロットではなくヒストグラムのみが得られます。データを確認するとき、それは順番にあるように見えますが、それはファクター形式であるため使用できません。
データインポート関数(ここではread.csv()
)とグローバルオプションの両方で、これを修正する必要があるstringsAsFactors=FALSE
と言うことができます。
デフォルトでは、read.csv
はデータの最初の数行をチェックして、各変数を数値として扱うかどうかを確認します。数値以外の値が見つかった場合、変数は文字データであると見なされ、文字変数は因子に変換されます。
データセット内のPTSおよびMP変数に非数値が含まれているように見えるため、予期しない結果が得られます。これらの変数を強制的に数値にすることができます
point <- as.numeric(as.character(point))
time <- as.numeric(as.character(time))
ただし、変換できない値は失われます。 (R FAQは、係数->数値変換の方法が少し異なりますが、それが何であるか思い出せません。)
options(stringsAsFactors=F)
を使用して、すべてのread.csv/read.*
コマンドにこれをグローバルに設定できます
次に、次のようにファイルを読み取ります:my.tab <- read.table( "filename.csv", as.is=T )
Csvデータファイルをインポートするとき、インポートコマンドは、各列(;)と数値の浮動小数点セパレータ(数値変数= 2,5の場合、これは "、")間のデータ分離の両方を反映する必要があります。
したがって、csvをインポートするコマンドは、より多くのコマンドを使用して、より包括的なものにする必要があります。
stuckey <- read.csv2("C:/kalle/R/stuckey.csv", header=TRUE, sep=";", dec=",")
これにより、すべての変数が整数または数値としてインポートされます。
私もRが初めてで、まったく同じ問題に直面しました。しかし、データを見て、csvファイルがすべての数値列でコンマ区切り文字(、)を使用しているという事実が原因であることに気付きました(例:1233444.56ではなく1,233,444.56)。
Csvファイルのカンマ区切りを削除してからRに再読み込みしました。データフレームはすべての列を数字として認識します。
Read.csv関数自体の中にこれを処理する方法があると確信しています。
これは、strip.white = TRUE
コマンドにread.csv
を含める場合にのみ正しく機能しました。
(私は解決策を見つけました ここ 。)
私にとっての解決策は、skip = 0(ファイルの先頭でスキップする行数。0より大きい値に設定可能)を含めることでした。
mydata <-read.csv(file = "file.csv"、header = TRUE、sep = "、"、skip = 22)