0

私はRを使用していて、このようなデータフレームを持っています(多くの行)

 DATE TICKER PERMNO PERMCO   BIDLO ASKHI    PRC CFACPR
1 20060901   ALOG  14198    173 55.8112 57.59 56.440      1
2 20060905   ALOG  14198    173 55.0101 56.48 55.650      1
3 20060906   ALOG  14198    173 55.0200 56.53 55.380      1
4 20060907   ALOG  14198    173 55.1200 57.05 56.360      1
5 20060908   ALOG  14198    173 55.3180 56.98 55.345      1
6 20060911   ALOG  14198    173 54.0000 56.23 56.190      1

いずれかの行のTICKER値にアクセスしようとしています。このような

> data[1,]$TICKER

[1] ALOG
150 Levels:  ACTG ACTL AEIS ALOG ALSC ALTR AMCC AMK AMSC ANAD ARMH ARMHY ARXX ASTSF ASYS ATMI ATML AVNX AXTI BELFA BELFB BRCM CAMD CATT CBMX CECE ... ZRAN

なぜ実際の値より150レベル低くなるのですか。ティッカーシンボルにアクセスするにはどうすればよいですか

4

2 に答える 2

3

レベルが結果より低い理由は、TICKER が要因として扱われているためです。Dirkは、そもそもそれが起こらないようにする方法についていくつかのアドバイスを提供していますが、使用して要素から文字に変換できますas.character

as.character(data[1, "TICKER"])

あるいは、列全体を因子ではなく文字ベクトルに変更したい場合は、次のようにすることができます

data$TICKER <- as.character(data$TICKER)
于 2012-09-02T00:51:29.743 に答える
2

をまたはstringsAsFactor=FALSEのオプションとして、またはグローバル設定として使用します。その場合、値は文字列になります。read.table()read.csv()

R> data <- read.table(textConnection(" DATE TICKER PERMNO PERMCO   BIDLO ASKHI    PRC CFACPR
1 20060901   ALOG  14198    173 55.8112 57.59 56.440      1
2 20060905   ALOG  14198    173 55.0101 56.48 55.650      1
3 20060906   ALOG  14198    173 55.0200 56.53 55.380      1
4 20060907   ALOG  14198    173 55.1200 57.05 56.360      1
5 20060908   ALOG  14198    173 55.3180 56.98 55.345      1
6 20060911   ALOG  14198    173 54.0000 56.23 56.190      1"), header=TRUE, stringsAsFactors=FALSE)
data <- read.table(textConnection(" DATE TICKER PERMNO PERMCO   BIDLO ASKHI    PRC CFACPR
+ 1 20060901   ALOG  14198    173 55.8112 57.59 56.440      1
+ 2 20060905   ALOG  14198    173 55.0101 56.48 55.650      1
+ 3 20060906   ALOG  14198    173 55.0200 56.53 55.380      1
+ 4 20060907   ALOG  14198    173 55.1200 57.05 56.360      1
+ 5 20060908   ALOG  14198    173 55.3180 56.98 55.345      1
+ 6 20060911   ALOG  14198    173 54.0000 56.23 56.190      1"), header=TRUE, stringsAsFactors=FALSE)
R> data[1,"TICKER"]
[1] "ALOG"
R> 
于 2012-09-02T00:47:48.260 に答える