-1

私はかなり標準的なテーブルを持っています。通常、テーブルから列を読み取るためにこのようなことをするとうまくいきますが、何らかの理由で今回はうまくいきませんでした。

x <- dataFile$columnName

ここに私が得るものがあります:

[1] 61 71 83 55 44 78 57 46 41 36 45 48 38 33 54 62 60 44 70 49 57 86 41 71 59 52 51 62 45 43
54 Levels:  33-87    36-81    38-79    41-70    41-85    43-47    44-51    44-62    45-51   ... 43

すべてのレベルが含まれていない、上部のみが必要です。

-----------

編集 (これがクローズされる準備として): 誤解を招くような情報をコメントに残すのではなく (これが誰かの検索に表示される場合に備えて)、上部は因子レベルのセットです。これらの値が (テキストとして) 必要な場合は、次を使用しますas.character(x)。マイナス記号が存在する場合にマイナス記号の前に文字が必要な場合は、次を使用できます。

  as.numeric( sub("\\-.+$", "", as.character(x) ) )

を使用as.numeric(x)すると、通常は 1 ~ 54 の値が返され、インデックスのみが必要な場合を除き、意味がありません。

4

1 に答える 1

0

?read.table から

stringAsFactors
論理: 文字ベクトルを因子に変換する必要がありますか? これは as.is と colClasses によってオーバーライドされることに注意してください。どちらもより細かい制御が可能です。

したがって、read.table コマンドで stringAsFactors = FALSE を設定します。

data <- read.table("C:/rk/R/problem.txt", sep="\t", fill = FALSE, stringsAsFactors = FALSE)

1 列の出力:

data$V21
 [1] "avg "   " 45.0 " " 45.5 " " 55.7 " " 58.2 " " 60.0 " " 60.2 " " 58.3 " " 58.4 " " 57.3 " " 55.7 " " 53.4 " " 52.5 " " 52.7 " " 53.4 " " 51.9 "
[17] " 52.6 " " 53.1 " " 53.1 " " 53.5 " " 52.4 " " 52.3 " " 52.0 " " 52.1 " " 51.9 " " 51.7 " " 52.1 " " 52.1 " " 52.4 " " 51.8 " " 51.6 " " 51.0" 

stringAsFactors が FALSE に設定されている場合、レベルはありません。

于 2013-12-02T04:50:43.007 に答える