74

私は R を初めて使用し、インポートしたデータセットにアクセスできません。私はRStudioを使用しており、csvファイルをインポートするときにデータセットのインポート機能を使用し、コンソールウィンドウからソースウィンドウに行を貼り付けました。コードは次のようになります。

setwd("c:/kalle/R")
stuckey <- read.csv("C:/kalle/R/stuckey.csv")
point <- stuckey$PTS
time <- stuckey$MP

ただし、データは私が慣れているように整数または数値ではなく、要因であるため、変数をプロットしようとすると、通常のプロットではなくヒストグラムのみが得られます。データを確認すると問題ないようですが、因子形式なので使用できません。

4

8 に答える 8

73

データ インポート機能 (ここでは: read.csv()) とグローバル オプションの両方で、どちらがstringsAsFactors=FALSEこれを修正するかを指定できます。

于 2011-03-03T23:07:12.697 に答える
29

デフォルトでread.csvは、データの最初の数行をチェックして、各変数を数値として扱うかどうかを確認します。数値以外の値が見つかった場合、その変数は文字データであると見なされ、文字変数は因数に変換されます。

データセットの PTS 変数と MP 変数に数値以外が含まれているようです。そのため、予期しない結果が得られています。これらの変数を強制的に数値にすることができます

point <- as.numeric(as.character(point))
time <- as.numeric(as.character(time))

ただし、変換できない値は失われます。(R の FAQ では、係数 -> 数値変換の方法が少し異なりますが、それが何であるかは思い出せません。)

于 2011-03-04T00:57:57.370 に答える
23

read.csv/read.*これは、すべてのコマンド に対してグローバルに設定できます。 options(stringsAsFactors=F)

次に、次のようにファイルを読み取ります。 my.tab <- read.table( "filename.csv", as.is=T )

于 2011-03-04T02:22:55.480 に答える
8

csv データ ファイルをインポートする場合、インポート コマンドは、各列間のデータ区切り (;) と数値の浮動小数点区切り記号の両方を反映する必要があります (数値変数 = 2,5 の場合、これは "," になります)。

したがって、csv をインポートするためのコマンドは、より多くのコマンドを使用して、もう少し包括的である必要があります。

    stuckey <- read.csv2("C:/kalle/R/stuckey.csv", header=TRUE, sep=";", dec=",")

これにより、すべての変数が整数または数値としてインポートされます。

于 2015-05-28T14:14:18.803 に答える
2

私もRが初めてで、まったく同じ問題に直面しました。しかし、その後、データを調べたところ、csv ファイルがすべての数値列でコンマ区切り記号 (,) を使用していたことが原因であることがわかりました (例: 1233444.56 ではなく 1,233,444.56)。

csv ファイルのコンマ区切りを削除してから、R にリロードしました。データ フレームはすべての列を数値として認識するようになりました。

read.csv 関数自体の中でこれを処理する方法があると確信しています。

于 2016-05-10T14:54:16.037 に答える
1

strip.white = TRUEこれは、read.csvコマンドに含める場合にのみうまく機能しました。

(私はここで解決策を見つけました。)

于 2018-08-29T09:36:51.350 に答える