.csvファイルからデータをインポートし、データセットをアタッチしました。
私の問題:1つの変数は整数形式で、295レベルです。私はこの変数を使用して他のものを作成する必要がありますが、レベルに対処する方法はわかりません。Rデータフレームのレベル
これらは何ですか、どうすれば対応できますか?
.csvファイルからデータをインポートし、データセットをアタッチしました。
私の問題:1つの変数は整数形式で、295レベルです。私はこの変数を使用して他のものを作成する必要がありますが、レベルに対処する方法はわかりません。Rデータフレームのレベル
これらは何ですか、どうすれば対応できますか?
正常に読み込まれたことを確認する要約(データ)を表示しますか。列が数値でない場合は、read.csvのcolClasses引数を参照して強制的に実行します。これにより、整形されていない数値のNA値が生成される可能性があります。
help(read.csv)が役立ちます。
Spacedman:colClassesを使用できますかNAを強制するには?最初はそうだが、txt < - c( "x、y、z"、 "1,2,3"、 "a、b、c"、 "1,2,3")と思った。スキャン時にd < - read.table(textConnection(txt)、sep = "、"、header = TRUE、colClasses = rep( "numeric"、3))エラーが発生しました。 read.tableにないものがありますか? – mdsumner
@mdsummer:これらの二重引用符を取り出します。彼らはあなたが意図していない方法であなたのキャラクターを束ねています。 –
@mdsummer:しかし、問題はとにかく続きました。 as.is = TRUEが必要です。 –
read.table(またはread.csv? - 指定しなかった)でデータを読み込むときに、stringsAsAsactor = FALSEという引数を追加します。その後、代わりに文字データを取得します。
カラムの整数が必要な場合は、整数として解釈できないデータが必要です。したがって、読んだ後に数値に変換してください。
txt <- c("x,y,z", "1,2,3", "a,b,c")
d <- read.csv(textConnection(txt))
sapply(d, class)
x y z
##"factor" "factor" "factor"
## we don't want factors, but characters
d <- read.csv(textConnection(txt), stringsAsFactors = FALSE)
sapply(d, class)
# x y z
#"character" "character" "character"
## convert x to numeric, and wear NAs for non numeric data
as.numeric(d$x)
#[1] 1 NA
#Warning message:
#NAs introduced by coercion
最後に、これらの入力の詳細を無視して、係数の用途から整数レベルを抽出する場合などです。 ?factorの "Warning"によるas.numeric(levels(d $ x))[d $ x]あなたの明確化から作業
ウォークスルーありがとう! –
私は "" あなたはread.tableをヘッダ= TRUE、stringAsFactors = FALSEとas.is = stringsAsFactorsと9月=を使用して読み取りステートメントをやり直し勧め!
datinp <- read.table("Rdata.csv", header=TRUE, stringAsFactors=FALSE ,
as.is = !stringsAsFactors , sep=",")
datinp$a <- as.numeric(datinp$a)
datinp$b <- as.numeric(datinp$b)
datinp$ctr <- with(datinp, as.integer(a/b)) # no loop needed when using vector arithmetic
か単純に使用できます
d$x2 = as.numeric(as.character(d$x))
これは、「レベル」の意味に応じて、いくつかのことを意味します。あなたの数字が因子変数に変換されたように聞こえるのは、ひどく形成された数なので、Rはそれをすべてカテゴリの '因子'変数に変換するからです。正確なコードとエラーメッセージをここでカットアンドペーストできますか? – Spacedman
'?factor'は読んでいますか?または「?レベル」 – Marek
setwd( "D:/ users/me/Desktop") data < - read.csv( "Rdata.csv") attach(data) ctr < - for(i in 1:4722) \t \t {as.integer(a [i]/b [i])} – user446667